home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1991-10-14 | 12.6 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: lalr.c
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
10%
| dexvert
| Jesper Olsen Module (music/jesperOlsen)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Mon Oct 14 22:49:40 1991, modified Mon Oct 14 22:49:40 1991, creator 'MPS ', type ASCII, 12225 bytes "lalr.c" , at 0x3041 428 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
49%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
33%
| TrID
| TTComp archive compressed (bin-4K)
| default (weak)
| |
16%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 6c 61 6c 72 2e 63 | 00 00 00 00 00 00 00 00 |..lalr.c|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 2f c1 00 | 00 01 ac a5 20 07 c4 a5 |...../..|.... ...|
|00000060| 20 07 c4 00 00 00 00 00 | 00 00 00 00 00 00 00 00 | .......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 07 30 00 00 |........|.....0..|
|00000080| 2f 2a 0d 20 2a 20 43 6f | 70 79 72 69 67 68 74 20 |/*. * Co|pyright |
|00000090| 28 63 29 20 31 39 38 39 | 20 54 68 65 20 52 65 67 |(c) 1989| The Reg|
|000000a0| 65 6e 74 73 20 6f 66 20 | 74 68 65 20 55 6e 69 76 |ents of |the Univ|
|000000b0| 65 72 73 69 74 79 20 6f | 66 20 43 61 6c 69 66 6f |ersity o|f Califo|
|000000c0| 72 6e 69 61 2e 0d 20 2a | 20 41 6c 6c 20 72 69 67 |rnia.. *| All rig|
|000000d0| 68 74 73 20 72 65 73 65 | 72 76 65 64 2e 0d 20 2a |hts rese|rved.. *|
|000000e0| 0d 20 2a 20 54 68 69 73 | 20 63 6f 64 65 20 69 73 |. * This| code is|
|000000f0| 20 64 65 72 69 76 65 64 | 20 66 72 6f 6d 20 73 6f | derived| from so|
|00000100| 66 74 77 61 72 65 20 63 | 6f 6e 74 72 69 62 75 74 |ftware c|ontribut|
|00000110| 65 64 20 74 6f 20 42 65 | 72 6b 65 6c 65 79 20 62 |ed to Be|rkeley b|
|00000120| 79 0d 20 2a 20 52 6f 62 | 65 72 74 20 50 61 75 6c |y. * Rob|ert Paul|
|00000130| 20 43 6f 72 62 65 74 74 | 2e 0d 20 2a 0d 20 2a 20 | Corbett|.. *. * |
|00000140| 52 65 64 69 73 74 72 69 | 62 75 74 69 6f 6e 20 61 |Redistri|bution a|
|00000150| 6e 64 20 75 73 65 20 69 | 6e 20 73 6f 75 72 63 65 |nd use i|n source|
|00000160| 20 61 6e 64 20 62 69 6e | 61 72 79 20 66 6f 72 6d | and bin|ary form|
|00000170| 73 2c 20 77 69 74 68 20 | 6f 72 20 77 69 74 68 6f |s, with |or witho|
|00000180| 75 74 0d 20 2a 20 6d 6f | 64 69 66 69 63 61 74 69 |ut. * mo|dificati|
|00000190| 6f 6e 2c 20 61 72 65 20 | 70 65 72 6d 69 74 74 65 |on, are |permitte|
|000001a0| 64 20 70 72 6f 76 69 64 | 65 64 20 74 68 61 74 20 |d provid|ed that |
|000001b0| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 63 6f |the foll|owing co|
|000001c0| 6e 64 69 74 69 6f 6e 73 | 0d 20 2a 20 61 72 65 20 |nditions|. * are |
|000001d0| 6d 65 74 3a 0d 20 2a 20 | 31 2e 20 52 65 64 69 73 |met:. * |1. Redis|
|000001e0| 74 72 69 62 75 74 69 6f | 6e 73 20 6f 66 20 73 6f |tributio|ns of so|
|000001f0| 75 72 63 65 20 63 6f 64 | 65 20 6d 75 73 74 20 72 |urce cod|e must r|
|00000200| 65 74 61 69 6e 20 74 68 | 65 20 61 62 6f 76 65 20 |etain th|e above |
|00000210| 63 6f 70 79 72 69 67 68 | 74 0d 20 2a 20 20 20 20 |copyrigh|t. * |
|00000220| 6e 6f 74 69 63 65 2c 20 | 74 68 69 73 20 6c 69 73 |notice, |this lis|
|00000230| 74 20 6f 66 20 63 6f 6e | 64 69 74 69 6f 6e 73 20 |t of con|ditions |
|00000240| 61 6e 64 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |and the |followin|
|00000250| 67 20 64 69 73 63 6c 61 | 69 6d 65 72 2e 0d 20 2a |g discla|imer.. *|
|00000260| 20 32 2e 20 52 65 64 69 | 73 74 72 69 62 75 74 69 | 2. Redi|stributi|
|00000270| 6f 6e 73 20 69 6e 20 62 | 69 6e 61 72 79 20 66 6f |ons in b|inary fo|
|00000280| 72 6d 20 6d 75 73 74 20 | 72 65 70 72 6f 64 75 63 |rm must |reproduc|
|00000290| 65 20 74 68 65 20 61 62 | 6f 76 65 20 63 6f 70 79 |e the ab|ove copy|
|000002a0| 72 69 67 68 74 0d 20 2a | 20 20 20 20 6e 6f 74 69 |right. *| noti|
|000002b0| 63 65 2c 20 74 68 69 73 | 20 6c 69 73 74 20 6f 66 |ce, this| list of|
|000002c0| 20 63 6f 6e 64 69 74 69 | 6f 6e 73 20 61 6e 64 20 | conditi|ons and |
|000002d0| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 64 69 |the foll|owing di|
|000002e0| 73 63 6c 61 69 6d 65 72 | 20 69 6e 20 74 68 65 0d |sclaimer| in the.|
|000002f0| 20 2a 20 20 20 20 64 6f | 63 75 6d 65 6e 74 61 74 | * do|cumentat|
|00000300| 69 6f 6e 20 61 6e 64 2f | 6f 72 20 6f 74 68 65 72 |ion and/|or other|
|00000310| 20 6d 61 74 65 72 69 61 | 6c 73 20 70 72 6f 76 69 | materia|ls provi|
|00000320| 64 65 64 20 77 69 74 68 | 20 74 68 65 20 64 69 73 |ded with| the dis|
|00000330| 74 72 69 62 75 74 69 6f | 6e 2e 0d 20 2a 20 33 2e |tributio|n.. * 3.|
|00000340| 20 41 6c 6c 20 61 64 76 | 65 72 74 69 73 69 6e 67 | All adv|ertising|
|00000350| 20 6d 61 74 65 72 69 61 | 6c 73 20 6d 65 6e 74 69 | materia|ls menti|
|00000360| 6f 6e 69 6e 67 20 66 65 | 61 74 75 72 65 73 20 6f |oning fe|atures o|
|00000370| 72 20 75 73 65 20 6f 66 | 20 74 68 69 73 20 73 6f |r use of| this so|
|00000380| 66 74 77 61 72 65 0d 20 | 2a 20 20 20 20 6d 75 73 |ftware. |* mus|
|00000390| 74 20 64 69 73 70 6c 61 | 79 20 74 68 65 20 66 6f |t displa|y the fo|
|000003a0| 6c 6c 6f 77 69 6e 67 20 | 61 63 6b 6e 6f 77 6c 65 |llowing |acknowle|
|000003b0| 64 67 65 6d 65 6e 74 3a | 0d 20 2a 09 54 68 69 73 |dgement:|. *.This|
|000003c0| 20 70 72 6f 64 75 63 74 | 20 69 6e 63 6c 75 64 65 | product| include|
|000003d0| 73 20 73 6f 66 74 77 61 | 72 65 20 64 65 76 65 6c |s softwa|re devel|
|000003e0| 6f 70 65 64 20 62 79 20 | 74 68 65 20 55 6e 69 76 |oped by |the Univ|
|000003f0| 65 72 73 69 74 79 20 6f | 66 0d 20 2a 09 43 61 6c |ersity o|f. *.Cal|
|00000400| 69 66 6f 72 6e 69 61 2c | 20 42 65 72 6b 65 6c 65 |ifornia,| Berkele|
|00000410| 79 20 61 6e 64 20 69 74 | 73 20 63 6f 6e 74 72 69 |y and it|s contri|
|00000420| 62 75 74 6f 72 73 2e 0d | 20 2a 20 34 2e 20 4e 65 |butors..| * 4. Ne|
|00000430| 69 74 68 65 72 20 74 68 | 65 20 6e 61 6d 65 20 6f |ither th|e name o|
|00000440| 66 20 74 68 65 20 55 6e | 69 76 65 72 73 69 74 79 |f the Un|iversity|
|00000450| 20 6e 6f 72 20 74 68 65 | 20 6e 61 6d 65 73 20 6f | nor the| names o|
|00000460| 66 20 69 74 73 20 63 6f | 6e 74 72 69 62 75 74 6f |f its co|ntributo|
|00000470| 72 73 0d 20 2a 20 20 20 | 20 6d 61 79 20 62 65 20 |rs. * | may be |
|00000480| 75 73 65 64 20 74 6f 20 | 65 6e 64 6f 72 73 65 20 |used to |endorse |
|00000490| 6f 72 20 70 72 6f 6d 6f | 74 65 20 70 72 6f 64 75 |or promo|te produ|
|000004a0| 63 74 73 20 64 65 72 69 | 76 65 64 20 66 72 6f 6d |cts deri|ved from|
|000004b0| 20 74 68 69 73 20 73 6f | 66 74 77 61 72 65 0d 20 | this so|ftware. |
|000004c0| 2a 20 20 20 20 77 69 74 | 68 6f 75 74 20 73 70 65 |* wit|hout spe|
|000004d0| 63 69 66 69 63 20 70 72 | 69 6f 72 20 77 72 69 74 |cific pr|ior writ|
|000004e0| 74 65 6e 20 70 65 72 6d | 69 73 73 69 6f 6e 2e 0d |ten perm|ission..|
|000004f0| 20 2a 0d 20 2a 20 54 48 | 49 53 20 53 4f 46 54 57 | *. * TH|IS SOFTW|
|00000500| 41 52 45 20 49 53 20 50 | 52 4f 56 49 44 45 44 20 |ARE IS P|ROVIDED |
|00000510| 42 59 20 54 48 45 20 52 | 45 47 45 4e 54 53 20 41 |BY THE R|EGENTS A|
|00000520| 4e 44 20 43 4f 4e 54 52 | 49 42 55 54 4f 52 53 20 |ND CONTR|IBUTORS |
|00000530| 60 60 41 53 20 49 53 27 | 27 20 41 4e 44 0d 20 2a |``AS IS'|' AND. *|
|00000540| 20 41 4e 59 20 45 58 50 | 52 45 53 53 20 4f 52 20 | ANY EXP|RESS OR |
|00000550| 49 4d 50 4c 49 45 44 20 | 57 41 52 52 41 4e 54 49 |IMPLIED |WARRANTI|
|00000560| 45 53 2c 20 49 4e 43 4c | 55 44 49 4e 47 2c 20 42 |ES, INCL|UDING, B|
|00000570| 55 54 20 4e 4f 54 20 4c | 49 4d 49 54 45 44 20 54 |UT NOT L|IMITED T|
|00000580| 4f 2c 20 54 48 45 0d 20 | 2a 20 49 4d 50 4c 49 45 |O, THE. |* IMPLIE|
|00000590| 44 20 57 41 52 52 41 4e | 54 49 45 53 20 4f 46 20 |D WARRAN|TIES OF |
|000005a0| 4d 45 52 43 48 41 4e 54 | 41 42 49 4c 49 54 59 20 |MERCHANT|ABILITY |
|000005b0| 41 4e 44 20 46 49 54 4e | 45 53 53 20 46 4f 52 20 |AND FITN|ESS FOR |
|000005c0| 41 20 50 41 52 54 49 43 | 55 4c 41 52 20 50 55 52 |A PARTIC|ULAR PUR|
|000005d0| 50 4f 53 45 0d 20 2a 20 | 41 52 45 20 44 49 53 43 |POSE. * |ARE DISC|
|000005e0| 4c 41 49 4d 45 44 2e 20 | 20 49 4e 20 4e 4f 20 45 |LAIMED. | IN NO E|
|000005f0| 56 45 4e 54 20 53 48 41 | 4c 4c 20 54 48 45 20 52 |VENT SHA|LL THE R|
|00000600| 45 47 45 4e 54 53 20 4f | 52 20 43 4f 4e 54 52 49 |EGENTS O|R CONTRI|
|00000610| 42 55 54 4f 52 53 20 42 | 45 20 4c 49 41 42 4c 45 |BUTORS B|E LIABLE|
|00000620| 0d 20 2a 20 46 4f 52 20 | 41 4e 59 20 44 49 52 45 |. * FOR |ANY DIRE|
|00000630| 43 54 2c 20 49 4e 44 49 | 52 45 43 54 2c 20 49 4e |CT, INDI|RECT, IN|
|00000640| 43 49 44 45 4e 54 41 4c | 2c 20 53 50 45 43 49 41 |CIDENTAL|, SPECIA|
|00000650| 4c 2c 20 45 58 45 4d 50 | 4c 41 52 59 2c 20 4f 52 |L, EXEMP|LARY, OR|
|00000660| 20 43 4f 4e 53 45 51 55 | 45 4e 54 49 41 4c 0d 20 | CONSEQU|ENTIAL. |
|00000670| 2a 20 44 41 4d 41 47 45 | 53 20 28 49 4e 43 4c 55 |* DAMAGE|S (INCLU|
|00000680| 44 49 4e 47 2c 20 42 55 | 54 20 4e 4f 54 20 4c 49 |DING, BU|T NOT LI|
|00000690| 4d 49 54 45 44 20 54 4f | 2c 20 50 52 4f 43 55 52 |MITED TO|, PROCUR|
|000006a0| 45 4d 45 4e 54 20 4f 46 | 20 53 55 42 53 54 49 54 |EMENT OF| SUBSTIT|
|000006b0| 55 54 45 20 47 4f 4f 44 | 53 0d 20 2a 20 4f 52 20 |UTE GOOD|S. * OR |
|000006c0| 53 45 52 56 49 43 45 53 | 3b 20 4c 4f 53 53 20 4f |SERVICES|; LOSS O|
|000006d0| 46 20 55 53 45 2c 20 44 | 41 54 41 2c 20 4f 52 20 |F USE, D|ATA, OR |
|000006e0| 50 52 4f 46 49 54 53 3b | 20 4f 52 20 42 55 53 49 |PROFITS;| OR BUSI|
|000006f0| 4e 45 53 53 20 49 4e 54 | 45 52 52 55 50 54 49 4f |NESS INT|ERRUPTIO|
|00000700| 4e 29 0d 20 2a 20 48 4f | 57 45 56 45 52 20 43 41 |N). * HO|WEVER CA|
|00000710| 55 53 45 44 20 41 4e 44 | 20 4f 4e 20 41 4e 59 20 |USED AND| ON ANY |
|00000720| 54 48 45 4f 52 59 20 4f | 46 20 4c 49 41 42 49 4c |THEORY O|F LIABIL|
|00000730| 49 54 59 2c 20 57 48 45 | 54 48 45 52 20 49 4e 20 |ITY, WHE|THER IN |
|00000740| 43 4f 4e 54 52 41 43 54 | 2c 20 53 54 52 49 43 54 |CONTRACT|, STRICT|
|00000750| 0d 20 2a 20 4c 49 41 42 | 49 4c 49 54 59 2c 20 4f |. * LIAB|ILITY, O|
|00000760| 52 20 54 4f 52 54 20 28 | 49 4e 43 4c 55 44 49 4e |R TORT (|INCLUDIN|
|00000770| 47 20 4e 45 47 4c 49 47 | 45 4e 43 45 20 4f 52 20 |G NEGLIG|ENCE OR |
|00000780| 4f 54 48 45 52 57 49 53 | 45 29 20 41 52 49 53 49 |OTHERWIS|E) ARISI|
|00000790| 4e 47 20 49 4e 20 41 4e | 59 20 57 41 59 0d 20 2a |NG IN AN|Y WAY. *|
|000007a0| 20 4f 55 54 20 4f 46 20 | 54 48 45 20 55 53 45 20 | OUT OF |THE USE |
|000007b0| 4f 46 20 54 48 49 53 20 | 53 4f 46 54 57 41 52 45 |OF THIS |SOFTWARE|
|000007c0| 2c 20 45 56 45 4e 20 49 | 46 20 41 44 56 49 53 45 |, EVEN I|F ADVISE|
|000007d0| 44 20 4f 46 20 54 48 45 | 20 50 4f 53 53 49 42 49 |D OF THE| POSSIBI|
|000007e0| 4c 49 54 59 20 4f 46 0d | 20 2a 20 53 55 43 48 20 |LITY OF.| * SUCH |
|000007f0| 44 41 4d 41 47 45 2e 0d | 20 2a 2f 0d 0d 23 69 66 |DAMAGE..| */..#if|
|00000800| 6e 64 65 66 20 6c 69 6e | 74 0d 73 74 61 74 69 63 |ndef lin|t.static|
|00000810| 20 63 68 61 72 20 73 63 | 63 73 69 64 5b 5d 20 3d | char sc|csid[] =|
|00000820| 20 22 40 28 23 29 6c 61 | 6c 72 2e 63 09 35 2e 33 | "@(#)la|lr.c.5.3|
|00000830| 20 28 42 65 72 6b 65 6c | 65 79 29 20 36 2f 31 2f | (Berkel|ey) 6/1/|
|00000840| 39 30 22 3b 0d 23 65 6e | 64 69 66 20 2f 2a 20 6e |90";.#en|dif /* n|
|00000850| 6f 74 20 6c 69 6e 74 20 | 2a 2f 0d 0d 23 69 6e 63 |ot lint |*/..#inc|
|00000860| 6c 75 64 65 20 22 64 65 | 66 73 2e 68 22 0d 0d 74 |lude "de|fs.h"..t|
|00000870| 79 70 65 64 65 66 0d 20 | 20 73 74 72 75 63 74 20 |ypedef. | struct |
|00000880| 73 68 6f 72 74 73 0d 20 | 20 20 20 7b 0d 20 20 20 |shorts. | {. |
|00000890| 20 20 20 73 74 72 75 63 | 74 20 73 68 6f 72 74 73 | struc|t shorts|
|000008a0| 20 2a 6e 65 78 74 3b 0d | 20 20 20 20 20 20 73 68 | *next;.| sh|
|000008b0| 6f 72 74 20 76 61 6c 75 | 65 3b 0d 20 20 20 20 7d |ort valu|e;. }|
|000008c0| 0d 20 20 73 68 6f 72 74 | 73 3b 0d 0d 69 6e 74 20 |. short|s;..int |
|000008d0| 74 6f 6b 65 6e 73 65 74 | 73 69 7a 65 3b 0d 73 68 |tokenset|size;.sh|
|000008e0| 6f 72 74 20 2a 6c 6f 6f | 6b 61 68 65 61 64 73 3b |ort *loo|kaheads;|
|000008f0| 0d 73 68 6f 72 74 20 2a | 4c 41 72 75 6c 65 6e 6f |.short *|LAruleno|
|00000900| 3b 0d 75 6e 73 69 67 6e | 65 64 20 2a 4c 41 3b 0d |;.unsign|ed *LA;.|
|00000910| 73 68 6f 72 74 20 2a 61 | 63 63 65 73 73 69 6e 67 |short *a|ccessing|
|00000920| 5f 73 79 6d 62 6f 6c 3b | 0d 63 6f 72 65 20 2a 2a |_symbol;|.core **|
|00000930| 73 74 61 74 65 5f 74 61 | 62 6c 65 3b 0d 73 68 69 |state_ta|ble;.shi|
|00000940| 66 74 73 20 2a 2a 73 68 | 69 66 74 5f 74 61 62 6c |fts **sh|ift_tabl|
|00000950| 65 3b 0d 72 65 64 75 63 | 74 69 6f 6e 73 20 2a 2a |e;.reduc|tions **|
|00000960| 72 65 64 75 63 74 69 6f | 6e 5f 74 61 62 6c 65 3b |reductio|n_table;|
|00000970| 0d 73 68 6f 72 74 20 2a | 67 6f 74 6f 5f 6d 61 70 |.short *|goto_map|
|00000980| 3b 0d 73 68 6f 72 74 20 | 2a 66 72 6f 6d 5f 73 74 |;.short |*from_st|
|00000990| 61 74 65 3b 0d 73 68 6f | 72 74 20 2a 74 6f 5f 73 |ate;.sho|rt *to_s|
|000009a0| 74 61 74 65 3b 0d 0d 73 | 68 6f 72 74 20 2a 2a 74 |tate;..s|hort **t|
|000009b0| 72 61 6e 73 70 6f 73 65 | 28 29 3b 0d 0d 73 74 61 |ranspose|();..sta|
|000009c0| 74 69 63 20 69 6e 74 20 | 69 6e 66 69 6e 69 74 79 |tic int |infinity|
|000009d0| 3b 0d 73 74 61 74 69 63 | 20 69 6e 74 20 6d 61 78 |;.static| int max|
|000009e0| 72 68 73 3b 0d 73 74 61 | 74 69 63 20 69 6e 74 20 |rhs;.sta|tic int |
|000009f0| 6e 67 6f 74 6f 73 3b 0d | 73 74 61 74 69 63 20 75 |ngotos;.|static u|
|00000a00| 6e 73 69 67 6e 65 64 20 | 2a 46 3b 0d 73 74 61 74 |nsigned |*F;.stat|
|00000a10| 69 63 20 73 68 6f 72 74 | 20 2a 2a 69 6e 63 6c 75 |ic short| **inclu|
|00000a20| 64 65 73 3b 0d 73 74 61 | 74 69 63 20 73 68 6f 72 |des;.sta|tic shor|
|00000a30| 74 73 20 2a 2a 6c 6f 6f | 6b 62 61 63 6b 3b 0d 73 |ts **loo|kback;.s|
|00000a40| 74 61 74 69 63 20 73 68 | 6f 72 74 20 2a 2a 52 3b |tatic sh|ort **R;|
|00000a50| 0d 73 74 61 74 69 63 20 | 73 68 6f 72 74 20 2a 49 |.static |short *I|
|00000a60| 4e 44 45 58 3b 0d 73 74 | 61 74 69 63 20 73 68 6f |NDEX;.st|atic sho|
|00000a70| 72 74 20 2a 56 45 52 54 | 49 43 45 53 3b 0d 73 74 |rt *VERT|ICES;.st|
|00000a80| 61 74 69 63 20 69 6e 74 | 20 74 6f 70 3b 0d 0d 0d |atic int| top;...|
|00000a90| 6c 61 6c 72 28 29 0d 7b | 0d 20 20 20 20 74 6f 6b |lalr().{|. tok|
|00000aa0| 65 6e 73 65 74 73 69 7a | 65 20 3d 20 57 4f 52 44 |ensetsiz|e = WORD|
|00000ab0| 53 49 5a 45 28 6e 74 6f | 6b 65 6e 73 29 3b 0d 0d |SIZE(nto|kens);..|
|00000ac0| 20 20 20 20 73 65 74 5f | 73 74 61 74 65 5f 74 61 | set_|state_ta|
|00000ad0| 62 6c 65 28 29 3b 0d 20 | 20 20 20 73 65 74 5f 61 |ble();. | set_a|
|00000ae0| 63 63 65 73 73 69 6e 67 | 5f 73 79 6d 62 6f 6c 28 |ccessing|_symbol(|
|00000af0| 29 3b 0d 20 20 20 20 73 | 65 74 5f 73 68 69 66 74 |);. s|et_shift|
|00000b00| 5f 74 61 62 6c 65 28 29 | 3b 0d 20 20 20 20 73 65 |_table()|;. se|
|00000b10| 74 5f 72 65 64 75 63 74 | 69 6f 6e 5f 74 61 62 6c |t_reduct|ion_tabl|
|00000b20| 65 28 29 3b 0d 20 20 20 | 20 73 65 74 5f 6d 61 78 |e();. | set_max|
|00000b30| 72 68 73 28 29 3b 0d 20 | 20 20 20 69 6e 69 74 69 |rhs();. | initi|
|00000b40| 61 6c 69 7a 65 5f 4c 41 | 28 29 3b 0d 20 20 20 20 |alize_LA|();. |
|00000b50| 73 65 74 5f 67 6f 74 6f | 5f 6d 61 70 28 29 3b 0d |set_goto|_map();.|
|00000b60| 20 20 20 20 69 6e 69 74 | 69 61 6c 69 7a 65 5f 46 | init|ialize_F|
|00000b70| 28 29 3b 0d 20 20 20 20 | 62 75 69 6c 64 5f 72 65 |();. |build_re|
|00000b80| 6c 61 74 69 6f 6e 73 28 | 29 3b 0d 20 20 20 20 63 |lations(|);. c|
|00000b90| 6f 6d 70 75 74 65 5f 46 | 4f 4c 4c 4f 57 53 28 29 |ompute_F|OLLOWS()|
|00000ba0| 3b 0d 20 20 20 20 63 6f | 6d 70 75 74 65 5f 6c 6f |;. co|mpute_lo|
|00000bb0| 6f 6b 61 68 65 61 64 73 | 28 29 3b 0d 7d 0d 0d 0d |okaheads|();.}...|
|00000bc0| 0d 73 65 74 5f 73 74 61 | 74 65 5f 74 61 62 6c 65 |.set_sta|te_table|
|00000bd0| 28 29 0d 7b 0d 20 20 20 | 20 72 65 67 69 73 74 65 |().{. | registe|
|00000be0| 72 20 63 6f 72 65 20 2a | 73 70 3b 0d 0d 20 20 20 |r core *|sp;.. |
|00000bf0| 20 73 74 61 74 65 5f 74 | 61 62 6c 65 20 3d 20 4e | state_t|able = N|
|00000c00| 45 57 32 28 6e 73 74 61 | 74 65 73 2c 20 63 6f 72 |EW2(nsta|tes, cor|
|00000c10| 65 20 2a 29 3b 0d 20 20 | 20 20 66 6f 72 20 28 73 |e *);. | for (s|
|00000c20| 70 20 3d 20 66 69 72 73 | 74 5f 73 74 61 74 65 3b |p = firs|t_state;|
|00000c30| 20 73 70 3b 20 73 70 20 | 3d 20 73 70 2d 3e 6e 65 | sp; sp |= sp->ne|
|00000c40| 78 74 29 0d 09 73 74 61 | 74 65 5f 74 61 62 6c 65 |xt)..sta|te_table|
|00000c50| 5b 73 70 2d 3e 6e 75 6d | 62 65 72 5d 20 3d 20 73 |[sp->num|ber] = s|
|00000c60| 70 3b 0d 7d 0d 0d 0d 0d | 73 65 74 5f 61 63 63 65 |p;.}....|set_acce|
|00000c70| 73 73 69 6e 67 5f 73 79 | 6d 62 6f 6c 28 29 0d 7b |ssing_sy|mbol().{|
|00000c80| 0d 20 20 20 20 72 65 67 | 69 73 74 65 72 20 63 6f |. reg|ister co|
|00000c90| 72 65 20 2a 73 70 3b 0d | 0d 20 20 20 20 61 63 63 |re *sp;.|. acc|
|00000ca0| 65 73 73 69 6e 67 5f 73 | 79 6d 62 6f 6c 20 3d 20 |essing_s|ymbol = |
|00000cb0| 4e 45 57 32 28 6e 73 74 | 61 74 65 73 2c 20 73 68 |NEW2(nst|ates, sh|
|00000cc0| 6f 72 74 29 3b 0d 20 20 | 20 20 66 6f 72 20 28 73 |ort);. | for (s|
|00000cd0| 70 20 3d 20 66 69 72 73 | 74 5f 73 74 61 74 65 3b |p = firs|t_state;|
|00000ce0| 20 73 70 3b 20 73 70 20 | 3d 20 73 70 2d 3e 6e 65 | sp; sp |= sp->ne|
|00000cf0| 78 74 29 0d 09 61 63 63 | 65 73 73 69 6e 67 5f 73 |xt)..acc|essing_s|
|00000d00| 79 6d 62 6f 6c 5b 73 70 | 2d 3e 6e 75 6d 62 65 72 |ymbol[sp|->number|
|00000d10| 5d 20 3d 20 73 70 2d 3e | 61 63 63 65 73 73 69 6e |] = sp->|accessin|
|00000d20| 67 5f 73 79 6d 62 6f 6c | 3b 0d 7d 0d 0d 0d 0d 73 |g_symbol|;.}....s|
|00000d30| 65 74 5f 73 68 69 66 74 | 5f 74 61 62 6c 65 28 29 |et_shift|_table()|
|00000d40| 0d 7b 0d 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |.{. r|egister |
|00000d50| 73 68 69 66 74 73 20 2a | 73 70 3b 0d 0d 20 20 20 |shifts *|sp;.. |
|00000d60| 20 73 68 69 66 74 5f 74 | 61 62 6c 65 20 3d 20 4e | shift_t|able = N|
|00000d70| 45 57 32 28 6e 73 74 61 | 74 65 73 2c 20 73 68 69 |EW2(nsta|tes, shi|
|00000d80| 66 74 73 20 2a 29 3b 0d | 20 20 20 20 66 6f 72 20 |fts *);.| for |
|00000d90| 28 73 70 20 3d 20 66 69 | 72 73 74 5f 73 68 69 66 |(sp = fi|rst_shif|
|00000da0| 74 3b 20 73 70 3b 20 73 | 70 20 3d 20 73 70 2d 3e |t; sp; s|p = sp->|
|00000db0| 6e 65 78 74 29 0d 09 73 | 68 69 66 74 5f 74 61 62 |next)..s|hift_tab|
|00000dc0| 6c 65 5b 73 70 2d 3e 6e | 75 6d 62 65 72 5d 20 3d |le[sp->n|umber] =|
|00000dd0| 20 73 70 3b 0d 7d 0d 0d | 0d 0d 73 65 74 5f 72 65 | sp;.}..|..set_re|
|00000de0| 64 75 63 74 69 6f 6e 5f | 74 61 62 6c 65 28 29 0d |duction_|table().|
|00000df0| 7b 0d 20 20 20 20 72 65 | 67 69 73 74 65 72 20 72 |{. re|gister r|
|00000e00| 65 64 75 63 74 69 6f 6e | 73 20 2a 72 70 3b 0d 0d |eduction|s *rp;..|
|00000e10| 20 20 20 20 72 65 64 75 | 63 74 69 6f 6e 5f 74 61 | redu|ction_ta|
|00000e20| 62 6c 65 20 3d 20 4e 45 | 57 32 28 6e 73 74 61 74 |ble = NE|W2(nstat|
|00000e30| 65 73 2c 20 72 65 64 75 | 63 74 69 6f 6e 73 20 2a |es, redu|ctions *|
|00000e40| 29 3b 0d 20 20 20 20 66 | 6f 72 20 28 72 70 20 3d |);. f|or (rp =|
|00000e50| 20 66 69 72 73 74 5f 72 | 65 64 75 63 74 69 6f 6e | first_r|eduction|
|00000e60| 3b 20 72 70 3b 20 72 70 | 20 3d 20 72 70 2d 3e 6e |; rp; rp| = rp->n|
|00000e70| 65 78 74 29 0d 09 72 65 | 64 75 63 74 69 6f 6e 5f |ext)..re|duction_|
|00000e80| 74 61 62 6c 65 5b 72 70 | 2d 3e 6e 75 6d 62 65 72 |table[rp|->number|
|00000e90| 5d 20 3d 20 72 70 3b 0d | 7d 0d 0d 0d 0d 73 65 74 |] = rp;.|}....set|
|00000ea0| 5f 6d 61 78 72 68 73 28 | 29 0d 7b 0d 20 20 72 65 |_maxrhs(|).{. re|
|00000eb0| 67 69 73 74 65 72 20 73 | 68 6f 72 74 20 2a 69 74 |gister s|hort *it|
|00000ec0| 65 6d 70 3b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |emp;. r|egister |
|00000ed0| 73 68 6f 72 74 20 2a 69 | 74 65 6d 5f 65 6e 64 3b |short *i|tem_end;|
|00000ee0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |. regis|ter int |
|00000ef0| 6c 65 6e 67 74 68 3b 0d | 20 20 72 65 67 69 73 74 |length;.| regist|
|00000f00| 65 72 20 69 6e 74 20 6d | 61 78 3b 0d 0d 20 20 6c |er int m|ax;.. l|
|00000f10| 65 6e 67 74 68 20 3d 20 | 30 3b 0d 20 20 6d 61 78 |ength = |0;. max|
|00000f20| 20 3d 20 30 3b 0d 20 20 | 69 74 65 6d 5f 65 6e 64 | = 0;. |item_end|
|00000f30| 20 3d 20 72 69 74 65 6d | 20 2b 20 6e 69 74 65 6d | = ritem| + nitem|
|00000f40| 73 3b 0d 20 20 66 6f 72 | 20 28 69 74 65 6d 70 20 |s;. for| (itemp |
|00000f50| 3d 20 72 69 74 65 6d 3b | 20 69 74 65 6d 70 20 3c |= ritem;| itemp <|
|00000f60| 20 69 74 65 6d 5f 65 6e | 64 3b 20 69 74 65 6d 70 | item_en|d; itemp|
|00000f70| 2b 2b 29 0d 20 20 20 20 | 7b 0d 20 20 20 20 20 20 |++). |{. |
|00000f80| 69 66 20 28 2a 69 74 65 | 6d 70 20 3e 3d 20 30 29 |if (*ite|mp >= 0)|
|00000f90| 0d 09 7b 0d 09 20 20 6c | 65 6e 67 74 68 2b 2b 3b |..{.. l|ength++;|
|00000fa0| 0d 09 7d 0d 20 20 20 20 | 20 20 65 6c 73 65 0d 09 |..}. | else..|
|00000fb0| 7b 0d 09 20 20 69 66 20 | 28 6c 65 6e 67 74 68 20 |{.. if |(length |
|00000fc0| 3e 20 6d 61 78 29 20 6d | 61 78 20 3d 20 6c 65 6e |> max) m|ax = len|
|00000fd0| 67 74 68 3b 0d 09 20 20 | 6c 65 6e 67 74 68 20 3d |gth;.. |length =|
|00000fe0| 20 30 3b 0d 09 7d 0d 20 | 20 20 20 7d 0d 0d 20 20 | 0;..}. | }.. |
|00000ff0| 6d 61 78 72 68 73 20 3d | 20 6d 61 78 3b 0d 7d 0d |maxrhs =| max;.}.|
|00001000| 0d 0d 0d 69 6e 69 74 69 | 61 6c 69 7a 65 5f 4c 41 |...initi|alize_LA|
|00001010| 28 29 0d 7b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |().{. r|egister |
|00001020| 69 6e 74 20 69 2c 20 6a | 2c 20 6b 3b 0d 20 20 72 |int i, j|, k;. r|
|00001030| 65 67 69 73 74 65 72 20 | 72 65 64 75 63 74 69 6f |egister |reductio|
|00001040| 6e 73 20 2a 72 70 3b 0d | 0d 20 20 6c 6f 6f 6b 61 |ns *rp;.|. looka|
|00001050| 68 65 61 64 73 20 3d 20 | 4e 45 57 32 28 6e 73 74 |heads = |NEW2(nst|
|00001060| 61 74 65 73 20 2b 20 31 | 2c 20 73 68 6f 72 74 29 |ates + 1|, short)|
|00001070| 3b 0d 0d 20 20 6b 20 3d | 20 30 3b 0d 20 20 66 6f |;.. k =| 0;. fo|
|00001080| 72 20 28 69 20 3d 20 30 | 3b 20 69 20 3c 20 6e 73 |r (i = 0|; i < ns|
|00001090| 74 61 74 65 73 3b 20 69 | 2b 2b 29 0d 20 20 20 20 |tates; i|++). |
|000010a0| 7b 0d 20 20 20 20 20 20 | 6c 6f 6f 6b 61 68 65 61 |{. |lookahea|
|000010b0| 64 73 5b 69 5d 20 3d 20 | 6b 3b 0d 20 20 20 20 20 |ds[i] = |k;. |
|000010c0| 20 72 70 20 3d 20 72 65 | 64 75 63 74 69 6f 6e 5f | rp = re|duction_|
|000010d0| 74 61 62 6c 65 5b 69 5d | 3b 0d 20 20 20 20 20 20 |table[i]|;. |
|000010e0| 69 66 20 28 72 70 29 0d | 09 6b 20 2b 3d 20 72 70 |if (rp).|.k += rp|
|000010f0| 2d 3e 6e 72 65 64 73 3b | 0d 20 20 20 20 7d 0d 20 |->nreds;|. }. |
|00001100| 20 6c 6f 6f 6b 61 68 65 | 61 64 73 5b 6e 73 74 61 | lookahe|ads[nsta|
|00001110| 74 65 73 5d 20 3d 20 6b | 3b 0d 0d 20 20 4c 41 20 |tes] = k|;.. LA |
|00001120| 3d 20 4e 45 57 32 28 6b | 20 2a 20 74 6f 6b 65 6e |= NEW2(k| * token|
|00001130| 73 65 74 73 69 7a 65 2c | 20 75 6e 73 69 67 6e 65 |setsize,| unsigne|
|00001140| 64 29 3b 0d 20 20 4c 41 | 72 75 6c 65 6e 6f 20 3d |d);. LA|ruleno =|
|00001150| 20 4e 45 57 32 28 6b 2c | 20 73 68 6f 72 74 29 3b | NEW2(k,| short);|
|00001160| 0d 20 20 6c 6f 6f 6b 62 | 61 63 6b 20 3d 20 4e 45 |. lookb|ack = NE|
|00001170| 57 32 28 6b 2c 20 73 68 | 6f 72 74 73 20 2a 29 3b |W2(k, sh|orts *);|
|00001180| 0d 0d 20 20 6b 20 3d 20 | 30 3b 0d 20 20 66 6f 72 |.. k = |0;. for|
|00001190| 20 28 69 20 3d 20 30 3b | 20 69 20 3c 20 6e 73 74 | (i = 0;| i < nst|
|000011a0| 61 74 65 73 3b 20 69 2b | 2b 29 0d 20 20 20 20 7b |ates; i+|+). {|
|000011b0| 0d 20 20 20 20 20 20 72 | 70 20 3d 20 72 65 64 75 |. r|p = redu|
|000011c0| 63 74 69 6f 6e 5f 74 61 | 62 6c 65 5b 69 5d 3b 0d |ction_ta|ble[i];.|
|000011d0| 20 20 20 20 20 20 69 66 | 20 28 72 70 29 0d 09 7b | if| (rp)..{|
|000011e0| 0d 09 20 20 66 6f 72 20 | 28 6a 20 3d 20 30 3b 20 |.. for |(j = 0; |
|000011f0| 6a 20 3c 20 72 70 2d 3e | 6e 72 65 64 73 3b 20 6a |j < rp->|nreds; j|
|00001200| 2b 2b 29 0d 09 20 20 20 | 20 7b 0d 09 20 20 20 20 |++).. | {.. |
|00001210| 20 20 4c 41 72 75 6c 65 | 6e 6f 5b 6b 5d 20 3d 20 | LArule|no[k] = |
|00001220| 72 70 2d 3e 72 75 6c 65 | 73 5b 6a 5d 3b 0d 09 20 |rp->rule|s[j];.. |
|00001230| 20 20 20 20 20 6b 2b 2b | 3b 0d 09 20 20 20 20 7d | k++|;.. }|
|00001240| 0d 09 7d 0d 20 20 20 20 | 7d 0d 7d 0d 0d 0d 73 65 |..}. |}.}...se|
|00001250| 74 5f 67 6f 74 6f 5f 6d | 61 70 28 29 0d 7b 0d 20 |t_goto_m|ap().{. |
|00001260| 20 72 65 67 69 73 74 65 | 72 20 73 68 69 66 74 73 | registe|r shifts|
|00001270| 20 2a 73 70 3b 0d 20 20 | 72 65 67 69 73 74 65 72 | *sp;. |register|
|00001280| 20 69 6e 74 20 69 3b 0d | 20 20 72 65 67 69 73 74 | int i;.| regist|
|00001290| 65 72 20 69 6e 74 20 73 | 79 6d 62 6f 6c 3b 0d 20 |er int s|ymbol;. |
|000012a0| 20 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 6b 3b | registe|r int k;|
|000012b0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 73 68 6f 72 |. regis|ter shor|
|000012c0| 74 20 2a 74 65 6d 70 5f | 6d 61 70 3b 0d 20 20 72 |t *temp_|map;. r|
|000012d0| 65 67 69 73 74 65 72 20 | 69 6e 74 20 73 74 61 74 |egister |int stat|
|000012e0| 65 32 3b 0d 20 20 72 65 | 67 69 73 74 65 72 20 69 |e2;. re|gister i|
|000012f0| 6e 74 20 73 74 61 74 65 | 31 3b 0d 0d 20 20 67 6f |nt state|1;.. go|
|00001300| 74 6f 5f 6d 61 70 20 3d | 20 4e 45 57 32 28 6e 76 |to_map =| NEW2(nv|
|00001310| 61 72 73 20 2b 20 31 2c | 20 73 68 6f 72 74 29 20 |ars + 1,| short) |
|00001320| 2d 20 6e 74 6f 6b 65 6e | 73 3b 0d 20 20 74 65 6d |- ntoken|s;. tem|
|00001330| 70 5f 6d 61 70 20 3d 20 | 4e 45 57 32 28 6e 76 61 |p_map = |NEW2(nva|
|00001340| 72 73 20 2b 20 31 2c 20 | 73 68 6f 72 74 29 20 2d |rs + 1, |short) -|
|00001350| 20 6e 74 6f 6b 65 6e 73 | 3b 0d 0d 20 20 6e 67 6f | ntokens|;.. ngo|
|00001360| 74 6f 73 20 3d 20 30 3b | 0d 20 20 66 6f 72 20 28 |tos = 0;|. for (|
|00001370| 73 70 20 3d 20 66 69 72 | 73 74 5f 73 68 69 66 74 |sp = fir|st_shift|
|00001380| 3b 20 73 70 3b 20 73 70 | 20 3d 20 73 70 2d 3e 6e |; sp; sp| = sp->n|
|00001390| 65 78 74 29 0d 20 20 20 | 20 7b 0d 20 20 20 20 20 |ext). | {. |
|000013a0| 20 66 6f 72 20 28 69 20 | 3d 20 73 70 2d 3e 6e 73 | for (i |= sp->ns|
|000013b0| 68 69 66 74 73 20 2d 20 | 31 3b 20 69 20 3e 3d 20 |hifts - |1; i >= |
|000013c0| 30 3b 20 69 2d 2d 29 0d | 09 7b 0d 09 20 20 73 79 |0; i--).|.{.. sy|
|000013d0| 6d 62 6f 6c 20 3d 20 61 | 63 63 65 73 73 69 6e 67 |mbol = a|ccessing|
|000013e0| 5f 73 79 6d 62 6f 6c 5b | 73 70 2d 3e 73 68 69 66 |_symbol[|sp->shif|
|000013f0| 74 5b 69 5d 5d 3b 0d 0d | 09 20 20 69 66 20 28 49 |t[i]];..|. if (I|
|00001400| 53 54 4f 4b 45 4e 28 73 | 79 6d 62 6f 6c 29 29 20 |STOKEN(s|ymbol)) |
|00001410| 62 72 65 61 6b 3b 0d 0d | 09 20 20 69 66 20 28 6e |break;..|. if (n|
|00001420| 67 6f 74 6f 73 20 3d 3d | 20 4d 41 58 53 48 4f 52 |gotos ==| MAXSHOR|
|00001430| 54 29 0d 09 20 20 20 20 | 66 61 74 61 6c 28 22 74 |T).. |fatal("t|
|00001440| 6f 6f 20 6d 61 6e 79 20 | 67 6f 74 6f 73 22 29 3b |oo many |gotos");|
|00001450| 0d 0d 09 20 20 6e 67 6f | 74 6f 73 2b 2b 3b 0d 09 |... ngo|tos++;..|
|00001460| 20 20 67 6f 74 6f 5f 6d | 61 70 5b 73 79 6d 62 6f | goto_m|ap[symbo|
|00001470| 6c 5d 2b 2b 3b 0d 20 20 | 20 20 20 20 20 20 7d 0d |l]++;. | }.|
|00001480| 20 20 20 20 7d 0d 0d 20 | 20 6b 20 3d 20 30 3b 0d | }.. | k = 0;.|
|00001490| 20 20 66 6f 72 20 28 69 | 20 3d 20 6e 74 6f 6b 65 | for (i| = ntoke|
|000014a0| 6e 73 3b 20 69 20 3c 20 | 6e 73 79 6d 73 3b 20 69 |ns; i < |nsyms; i|
|000014b0| 2b 2b 29 0d 20 20 20 20 | 7b 0d 20 20 20 20 20 20 |++). |{. |
|000014c0| 74 65 6d 70 5f 6d 61 70 | 5b 69 5d 20 3d 20 6b 3b |temp_map|[i] = k;|
|000014d0| 0d 20 20 20 20 20 20 6b | 20 2b 3d 20 67 6f 74 6f |. k| += goto|
|000014e0| 5f 6d 61 70 5b 69 5d 3b | 0d 20 20 20 20 7d 0d 0d |_map[i];|. }..|
|000014f0| 20 20 66 6f 72 20 28 69 | 20 3d 20 6e 74 6f 6b 65 | for (i| = ntoke|
|00001500| 6e 73 3b 20 69 20 3c 20 | 6e 73 79 6d 73 3b 20 69 |ns; i < |nsyms; i|
|00001510| 2b 2b 29 0d 20 20 20 20 | 67 6f 74 6f 5f 6d 61 70 |++). |goto_map|
|00001520| 5b 69 5d 20 3d 20 74 65 | 6d 70 5f 6d 61 70 5b 69 |[i] = te|mp_map[i|
|00001530| 5d 3b 0d 0d 20 20 67 6f | 74 6f 5f 6d 61 70 5b 6e |];.. go|to_map[n|
|00001540| 73 79 6d 73 5d 20 3d 20 | 6e 67 6f 74 6f 73 3b 0d |syms] = |ngotos;.|
|00001550| 20 20 74 65 6d 70 5f 6d | 61 70 5b 6e 73 79 6d 73 | temp_m|ap[nsyms|
|00001560| 5d 20 3d 20 6e 67 6f 74 | 6f 73 3b 0d 0d 20 20 66 |] = ngot|os;.. f|
|00001570| 72 6f 6d 5f 73 74 61 74 | 65 20 3d 20 4e 45 57 32 |rom_stat|e = NEW2|
|00001580| 28 6e 67 6f 74 6f 73 2c | 20 73 68 6f 72 74 29 3b |(ngotos,| short);|
|00001590| 0d 20 20 74 6f 5f 73 74 | 61 74 65 20 3d 20 4e 45 |. to_st|ate = NE|
|000015a0| 57 32 28 6e 67 6f 74 6f | 73 2c 20 73 68 6f 72 74 |W2(ngoto|s, short|
|000015b0| 29 3b 0d 0d 20 20 66 6f | 72 20 28 73 70 20 3d 20 |);.. fo|r (sp = |
|000015c0| 66 69 72 73 74 5f 73 68 | 69 66 74 3b 20 73 70 3b |first_sh|ift; sp;|
|000015d0| 20 73 70 20 3d 20 73 70 | 2d 3e 6e 65 78 74 29 0d | sp = sp|->next).|
|000015e0| 20 20 20 20 7b 0d 20 20 | 20 20 20 20 73 74 61 74 | {. | stat|
|000015f0| 65 31 20 3d 20 73 70 2d | 3e 6e 75 6d 62 65 72 3b |e1 = sp-|>number;|
|00001600| 0d 20 20 20 20 20 20 66 | 6f 72 20 28 69 20 3d 20 |. f|or (i = |
|00001610| 73 70 2d 3e 6e 73 68 69 | 66 74 73 20 2d 20 31 3b |sp->nshi|fts - 1;|
|00001620| 20 69 20 3e 3d 20 30 3b | 20 69 2d 2d 29 0d 09 7b | i >= 0;| i--)..{|
|00001630| 0d 09 20 20 73 74 61 74 | 65 32 20 3d 20 73 70 2d |.. stat|e2 = sp-|
|00001640| 3e 73 68 69 66 74 5b 69 | 5d 3b 0d 09 20 20 73 79 |>shift[i|];.. sy|
|00001650| 6d 62 6f 6c 20 3d 20 61 | 63 63 65 73 73 69 6e 67 |mbol = a|ccessing|
|00001660| 5f 73 79 6d 62 6f 6c 5b | 73 74 61 74 65 32 5d 3b |_symbol[|state2];|
|00001670| 0d 0d 09 20 20 69 66 20 | 28 49 53 54 4f 4b 45 4e |... if |(ISTOKEN|
|00001680| 28 73 79 6d 62 6f 6c 29 | 29 20 62 72 65 61 6b 3b |(symbol)|) break;|
|00001690| 0d 0d 09 20 20 6b 20 3d | 20 74 65 6d 70 5f 6d 61 |... k =| temp_ma|
|000016a0| 70 5b 73 79 6d 62 6f 6c | 5d 2b 2b 3b 0d 09 20 20 |p[symbol|]++;.. |
|000016b0| 66 72 6f 6d 5f 73 74 61 | 74 65 5b 6b 5d 20 3d 20 |from_sta|te[k] = |
|000016c0| 73 74 61 74 65 31 3b 0d | 09 20 20 74 6f 5f 73 74 |state1;.|. to_st|
|000016d0| 61 74 65 5b 6b 5d 20 3d | 20 73 74 61 74 65 32 3b |ate[k] =| state2;|
|000016e0| 0d 09 7d 0d 20 20 20 20 | 7d 0d 0d 20 20 46 52 45 |..}. |}.. FRE|
|000016f0| 45 28 74 65 6d 70 5f 6d | 61 70 20 2b 20 6e 74 6f |E(temp_m|ap + nto|
|00001700| 6b 65 6e 73 29 3b 0d 7d | 0d 0d 0d 0d 2f 2a 20 20 |kens);.}|..../* |
|00001710| 4d 61 70 5f 67 6f 74 6f | 20 6d 61 70 73 20 61 20 |Map_goto| maps a |
|00001720| 73 74 61 74 65 2f 73 79 | 6d 62 6f 6c 20 70 61 69 |state/sy|mbol pai|
|00001730| 72 20 69 6e 74 6f 20 69 | 74 73 20 6e 75 6d 65 72 |r into i|ts numer|
|00001740| 69 63 20 72 65 70 72 65 | 73 65 6e 74 61 74 69 6f |ic repre|sentatio|
|00001750| 6e 2e 09 2a 2f 0d 0d 69 | 6e 74 0d 6d 61 70 5f 67 |n..*/..i|nt.map_g|
|00001760| 6f 74 6f 28 73 74 61 74 | 65 2c 20 73 79 6d 62 6f |oto(stat|e, symbo|
|00001770| 6c 29 0d 69 6e 74 20 73 | 74 61 74 65 3b 0d 69 6e |l).int s|tate;.in|
|00001780| 74 20 73 79 6d 62 6f 6c | 3b 0d 7b 0d 20 20 20 20 |t symbol|;.{. |
|00001790| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 68 69 67 |register| int hig|
|000017a0| 68 3b 0d 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |h;. r|egister |
|000017b0| 69 6e 74 20 6c 6f 77 3b | 0d 20 20 20 20 72 65 67 |int low;|. reg|
|000017c0| 69 73 74 65 72 20 69 6e | 74 20 6d 69 64 64 6c 65 |ister in|t middle|
|000017d0| 3b 0d 20 20 20 20 72 65 | 67 69 73 74 65 72 20 69 |;. re|gister i|
|000017e0| 6e 74 20 73 3b 0d 0d 20 | 20 20 20 6c 6f 77 20 3d |nt s;.. | low =|
|000017f0| 20 67 6f 74 6f 5f 6d 61 | 70 5b 73 79 6d 62 6f 6c | goto_ma|p[symbol|
|00001800| 5d 3b 0d 20 20 20 20 68 | 69 67 68 20 3d 20 67 6f |];. h|igh = go|
|00001810| 74 6f 5f 6d 61 70 5b 73 | 79 6d 62 6f 6c 20 2b 20 |to_map[s|ymbol + |
|00001820| 31 5d 3b 0d 0d 20 20 20 | 20 66 6f 72 20 28 3b 3b |1];.. | for (;;|
|00001830| 29 0d 20 20 20 20 7b 0d | 09 61 73 73 65 72 74 28 |). {.|.assert(|
|00001840| 6c 6f 77 20 3c 3d 20 68 | 69 67 68 29 3b 0d 09 6d |low <= h|igh);..m|
|00001850| 69 64 64 6c 65 20 3d 20 | 28 6c 6f 77 20 2b 20 68 |iddle = |(low + h|
|00001860| 69 67 68 29 20 3e 3e 20 | 31 3b 0d 09 73 20 3d 20 |igh) >> |1;..s = |
|00001870| 66 72 6f 6d 5f 73 74 61 | 74 65 5b 6d 69 64 64 6c |from_sta|te[middl|
|00001880| 65 5d 3b 0d 09 69 66 20 | 28 73 20 3d 3d 20 73 74 |e];..if |(s == st|
|00001890| 61 74 65 29 0d 09 20 20 | 20 20 72 65 74 75 72 6e |ate).. | return|
|000018a0| 20 28 6d 69 64 64 6c 65 | 29 3b 0d 09 65 6c 73 65 | (middle|);..else|
|000018b0| 20 69 66 20 28 73 20 3c | 20 73 74 61 74 65 29 0d | if (s <| state).|
|000018c0| 09 20 20 20 20 6c 6f 77 | 20 3d 20 6d 69 64 64 6c |. low| = middl|
|000018d0| 65 20 2b 20 31 3b 0d 09 | 65 6c 73 65 0d 09 20 20 |e + 1;..|else.. |
|000018e0| 20 20 68 69 67 68 20 3d | 20 6d 69 64 64 6c 65 20 | high =| middle |
|000018f0| 2d 20 31 3b 0d 20 20 20 | 20 7d 0d 7d 0d 0d 0d 0d |- 1;. | }.}....|
|00001900| 69 6e 69 74 69 61 6c 69 | 7a 65 5f 46 28 29 0d 7b |initiali|ze_F().{|
|00001910| 0d 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |. regis|ter int |
|00001920| 69 3b 0d 20 20 72 65 67 | 69 73 74 65 72 20 69 6e |i;. reg|ister in|
|00001930| 74 20 6a 3b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |t j;. r|egister |
|00001940| 69 6e 74 20 6b 3b 0d 20 | 20 72 65 67 69 73 74 65 |int k;. | registe|
|00001950| 72 20 73 68 69 66 74 73 | 20 2a 73 70 3b 0d 20 20 |r shifts| *sp;. |
|00001960| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 2a |register| short *|
|00001970| 65 64 67 65 3b 0d 20 20 | 72 65 67 69 73 74 65 72 |edge;. |register|
|00001980| 20 75 6e 73 69 67 6e 65 | 64 20 2a 72 6f 77 70 3b | unsigne|d *rowp;|
|00001990| 0d 20 20 72 65 67 69 73 | 74 65 72 20 73 68 6f 72 |. regis|ter shor|
|000019a0| 74 20 2a 72 70 3b 0d 20 | 20 72 65 67 69 73 74 65 |t *rp;. | registe|
|000019b0| 72 20 73 68 6f 72 74 20 | 2a 2a 72 65 61 64 73 3b |r short |**reads;|
|000019c0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |. regis|ter int |
|000019d0| 6e 65 64 67 65 73 3b 0d | 20 20 72 65 67 69 73 74 |nedges;.| regist|
|000019e0| 65 72 20 69 6e 74 20 73 | 74 61 74 65 6e 6f 3b 0d |er int s|tateno;.|
|000019f0| 20 20 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 73 | regist|er int s|
|00001a00| 79 6d 62 6f 6c 3b 0d 20 | 20 72 65 67 69 73 74 65 |ymbol;. | registe|
|00001a10| 72 20 69 6e 74 20 6e 77 | 6f 72 64 73 3b 0d 0d 20 |r int nw|ords;.. |
|00001a20| 20 6e 77 6f 72 64 73 20 | 3d 20 6e 67 6f 74 6f 73 | nwords |= ngotos|
|00001a30| 20 2a 20 74 6f 6b 65 6e | 73 65 74 73 69 7a 65 3b | * token|setsize;|
|00001a40| 0d 20 20 46 20 3d 20 4e | 45 57 32 28 6e 77 6f 72 |. F = N|EW2(nwor|
|00001a50| 64 73 2c 20 75 6e 73 69 | 67 6e 65 64 29 3b 0d 0d |ds, unsi|gned);..|
|00001a60| 20 20 72 65 61 64 73 20 | 3d 20 4e 45 57 32 28 6e | reads |= NEW2(n|
|00001a70| 67 6f 74 6f 73 2c 20 73 | 68 6f 72 74 20 2a 29 3b |gotos, s|hort *);|
|00001a80| 0d 20 20 65 64 67 65 20 | 3d 20 4e 45 57 32 28 6e |. edge |= NEW2(n|
|00001a90| 67 6f 74 6f 73 20 2b 20 | 31 2c 20 73 68 6f 72 74 |gotos + |1, short|
|00001aa0| 29 3b 0d 20 20 6e 65 64 | 67 65 73 20 3d 20 30 3b |);. ned|ges = 0;|
|00001ab0| 0d 0d 20 20 72 6f 77 70 | 20 3d 20 46 3b 0d 20 20 |.. rowp| = F;. |
|00001ac0| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|00001ad0| 6e 67 6f 74 6f 73 3b 20 | 69 2b 2b 29 0d 20 20 20 |ngotos; |i++). |
|00001ae0| 20 7b 0d 20 20 20 20 20 | 20 73 74 61 74 65 6e 6f | {. | stateno|
|00001af0| 20 3d 20 74 6f 5f 73 74 | 61 74 65 5b 69 5d 3b 0d | = to_st|ate[i];.|
|00001b00| 20 20 20 20 20 20 73 70 | 20 3d 20 73 68 69 66 74 | sp| = shift|
|00001b10| 5f 74 61 62 6c 65 5b 73 | 74 61 74 65 6e 6f 5d 3b |_table[s|tateno];|
|00001b20| 0d 0d 20 20 20 20 20 20 | 69 66 20 28 73 70 29 0d |.. |if (sp).|
|00001b30| 09 7b 0d 09 20 20 6b 20 | 3d 20 73 70 2d 3e 6e 73 |.{.. k |= sp->ns|
|00001b40| 68 69 66 74 73 3b 0d 0d | 09 20 20 66 6f 72 20 28 |hifts;..|. for (|
|00001b50| 6a 20 3d 20 30 3b 20 6a | 20 3c 20 6b 3b 20 6a 2b |j = 0; j| < k; j+|
|00001b60| 2b 29 0d 09 20 20 20 20 | 7b 0d 09 20 20 20 20 20 |+).. |{.. |
|00001b70| 20 73 79 6d 62 6f 6c 20 | 3d 20 61 63 63 65 73 73 | symbol |= access|
|00001b80| 69 6e 67 5f 73 79 6d 62 | 6f 6c 5b 73 70 2d 3e 73 |ing_symb|ol[sp->s|
|00001b90| 68 69 66 74 5b 6a 5d 5d | 3b 0d 09 20 20 20 20 20 |hift[j]]|;.. |
|00001ba0| 20 69 66 20 28 49 53 56 | 41 52 28 73 79 6d 62 6f | if (ISV|AR(symbo|
|00001bb0| 6c 29 29 0d 09 09 62 72 | 65 61 6b 3b 0d 09 20 20 |l))...br|eak;.. |
|00001bc0| 20 20 20 20 53 45 54 42 | 49 54 28 72 6f 77 70 2c | SETB|IT(rowp,|
|00001bd0| 20 73 79 6d 62 6f 6c 29 | 3b 0d 09 20 20 20 20 7d | symbol)|;.. }|
|00001be0| 0d 0d 09 20 20 66 6f 72 | 20 28 3b 20 6a 20 3c 20 |... for| (; j < |
|00001bf0| 6b 3b 20 6a 2b 2b 29 0d | 09 20 20 20 20 7b 0d 09 |k; j++).|. {..|
|00001c00| 20 20 20 20 20 20 73 79 | 6d 62 6f 6c 20 3d 20 61 | sy|mbol = a|
|00001c10| 63 63 65 73 73 69 6e 67 | 5f 73 79 6d 62 6f 6c 5b |ccessing|_symbol[|
|00001c20| 73 70 2d 3e 73 68 69 66 | 74 5b 6a 5d 5d 3b 0d 09 |sp->shif|t[j]];..|
|00001c30| 20 20 20 20 20 20 69 66 | 20 28 6e 75 6c 6c 61 62 | if| (nullab|
|00001c40| 6c 65 5b 73 79 6d 62 6f | 6c 5d 29 0d 09 09 65 64 |le[symbo|l])...ed|
|00001c50| 67 65 5b 6e 65 64 67 65 | 73 2b 2b 5d 20 3d 20 6d |ge[nedge|s++] = m|
|00001c60| 61 70 5f 67 6f 74 6f 28 | 73 74 61 74 65 6e 6f 2c |ap_goto(|stateno,|
|00001c70| 20 73 79 6d 62 6f 6c 29 | 3b 0d 09 20 20 20 20 7d | symbol)|;.. }|
|00001c80| 0d 09 0d 09 20 20 69 66 | 20 28 6e 65 64 67 65 73 |.... if| (nedges|
|00001c90| 29 0d 09 20 20 20 20 7b | 0d 09 20 20 20 20 20 20 |).. {|.. |
|00001ca0| 72 65 61 64 73 5b 69 5d | 20 3d 20 72 70 20 3d 20 |reads[i]| = rp = |
|00001cb0| 4e 45 57 32 28 6e 65 64 | 67 65 73 20 2b 20 31 2c |NEW2(ned|ges + 1,|
|00001cc0| 20 73 68 6f 72 74 29 3b | 0d 0d 09 20 20 20 20 20 | short);|... |
|00001cd0| 20 66 6f 72 20 28 6a 20 | 3d 20 30 3b 20 6a 20 3c | for (j |= 0; j <|
|00001ce0| 20 6e 65 64 67 65 73 3b | 20 6a 2b 2b 29 0d 09 09 | nedges;| j++)...|
|00001cf0| 72 70 5b 6a 5d 20 3d 20 | 65 64 67 65 5b 6a 5d 3b |rp[j] = |edge[j];|
|00001d00| 0d 0d 09 20 20 20 20 20 | 20 72 70 5b 6e 65 64 67 |... | rp[nedg|
|00001d10| 65 73 5d 20 3d 20 2d 31 | 3b 0d 09 20 20 20 20 20 |es] = -1|;.. |
|00001d20| 20 6e 65 64 67 65 73 20 | 3d 20 30 3b 0d 09 20 20 | nedges |= 0;.. |
|00001d30| 20 20 7d 0d 09 7d 0d 0d | 20 20 20 20 20 20 72 6f | }..}..| ro|
|00001d40| 77 70 20 2b 3d 20 74 6f | 6b 65 6e 73 65 74 73 69 |wp += to|kensetsi|
|00001d50| 7a 65 3b 0d 20 20 20 20 | 7d 0d 0d 20 20 53 45 54 |ze;. |}.. SET|
|00001d60| 42 49 54 28 46 2c 20 30 | 29 3b 0d 20 20 64 69 67 |BIT(F, 0|);. dig|
|00001d70| 72 61 70 68 28 72 65 61 | 64 73 29 3b 0d 0d 20 20 |raph(rea|ds);.. |
|00001d80| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|00001d90| 6e 67 6f 74 6f 73 3b 20 | 69 2b 2b 29 0d 20 20 20 |ngotos; |i++). |
|00001da0| 20 7b 0d 20 20 20 20 20 | 20 69 66 20 28 72 65 61 | {. | if (rea|
|00001db0| 64 73 5b 69 5d 29 0d 09 | 46 52 45 45 28 72 65 61 |ds[i])..|FREE(rea|
|00001dc0| 64 73 5b 69 5d 29 3b 0d | 20 20 20 20 7d 0d 0d 20 |ds[i]);.| }.. |
|00001dd0| 20 46 52 45 45 28 72 65 | 61 64 73 29 3b 0d 20 20 | FREE(re|ads);. |
|00001de0| 46 52 45 45 28 65 64 67 | 65 29 3b 0d 7d 0d 0d 0d |FREE(edg|e);.}...|
|00001df0| 0d 62 75 69 6c 64 5f 72 | 65 6c 61 74 69 6f 6e 73 |.build_r|elations|
|00001e00| 28 29 0d 7b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |().{. r|egister |
|00001e10| 69 6e 74 20 69 3b 0d 20 | 20 72 65 67 69 73 74 65 |int i;. | registe|
|00001e20| 72 20 69 6e 74 20 6a 3b | 0d 20 20 72 65 67 69 73 |r int j;|. regis|
|00001e30| 74 65 72 20 69 6e 74 20 | 6b 3b 0d 20 20 72 65 67 |ter int |k;. reg|
|00001e40| 69 73 74 65 72 20 73 68 | 6f 72 74 20 2a 72 75 6c |ister sh|ort *rul|
|00001e50| 65 70 3b 0d 20 20 72 65 | 67 69 73 74 65 72 20 73 |ep;. re|gister s|
|00001e60| 68 6f 72 74 20 2a 72 70 | 3b 0d 20 20 72 65 67 69 |hort *rp|;. regi|
|00001e70| 73 74 65 72 20 73 68 69 | 66 74 73 20 2a 73 70 3b |ster shi|fts *sp;|
|00001e80| 0d 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 |. regis|ter int |
|00001e90| 6c 65 6e 67 74 68 3b 0d | 20 20 72 65 67 69 73 74 |length;.| regist|
|00001ea0| 65 72 20 69 6e 74 20 6e | 65 64 67 65 73 3b 0d 20 |er int n|edges;. |
|00001eb0| 20 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 64 6f | registe|r int do|
|00001ec0| 6e 65 3b 0d 20 20 72 65 | 67 69 73 74 65 72 20 69 |ne;. re|gister i|
|00001ed0| 6e 74 20 73 74 61 74 65 | 31 3b 0d 20 20 72 65 67 |nt state|1;. reg|
|00001ee0| 69 73 74 65 72 20 69 6e | 74 20 73 74 61 74 65 6e |ister in|t staten|
|00001ef0| 6f 3b 0d 20 20 72 65 67 | 69 73 74 65 72 20 69 6e |o;. reg|ister in|
|00001f00| 74 20 73 79 6d 62 6f 6c | 31 3b 0d 20 20 72 65 67 |t symbol|1;. reg|
|00001f10| 69 73 74 65 72 20 69 6e | 74 20 73 79 6d 62 6f 6c |ister in|t symbol|
|00001f20| 32 3b 0d 20 20 72 65 67 | 69 73 74 65 72 20 73 68 |2;. reg|ister sh|
|00001f30| 6f 72 74 20 2a 73 68 6f | 72 74 70 3b 0d 20 20 72 |ort *sho|rtp;. r|
|00001f40| 65 67 69 73 74 65 72 20 | 73 68 6f 72 74 20 2a 65 |egister |short *e|
|00001f50| 64 67 65 3b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |dge;. r|egister |
|00001f60| 73 68 6f 72 74 20 2a 73 | 74 61 74 65 73 3b 0d 20 |short *s|tates;. |
|00001f70| 20 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 | registe|r short |
|00001f80| 2a 2a 6e 65 77 5f 69 6e | 63 6c 75 64 65 73 3b 0d |**new_in|cludes;.|
|00001f90| 0d 20 20 69 6e 63 6c 75 | 64 65 73 20 3d 20 4e 45 |. inclu|des = NE|
|00001fa0| 57 32 28 6e 67 6f 74 6f | 73 2c 20 73 68 6f 72 74 |W2(ngoto|s, short|
|00001fb0| 20 2a 29 3b 0d 20 20 65 | 64 67 65 20 3d 20 4e 45 | *);. e|dge = NE|
|00001fc0| 57 32 28 6e 67 6f 74 6f | 73 20 2b 20 31 2c 20 73 |W2(ngoto|s + 1, s|
|00001fd0| 68 6f 72 74 29 3b 0d 20 | 20 73 74 61 74 65 73 20 |hort);. | states |
|00001fe0| 3d 20 4e 45 57 32 28 6d | 61 78 72 68 73 20 2b 20 |= NEW2(m|axrhs + |
|00001ff0| 31 2c 20 73 68 6f 72 74 | 29 3b 0d 0d 20 20 66 6f |1, short|);.. fo|
|00002000| 72 20 28 69 20 3d 20 30 | 3b 20 69 20 3c 20 6e 67 |r (i = 0|; i < ng|
|00002010| 6f 74 6f 73 3b 20 69 2b | 2b 29 0d 20 20 20 20 7b |otos; i+|+). {|
|00002020| 0d 20 20 20 20 20 20 6e | 65 64 67 65 73 20 3d 20 |. n|edges = |
|00002030| 30 3b 0d 20 20 20 20 20 | 20 73 74 61 74 65 31 20 |0;. | state1 |
|00002040| 3d 20 66 72 6f 6d 5f 73 | 74 61 74 65 5b 69 5d 3b |= from_s|tate[i];|
|00002050| 0d 20 20 20 20 20 20 73 | 79 6d 62 6f 6c 31 20 3d |. s|ymbol1 =|
|00002060| 20 61 63 63 65 73 73 69 | 6e 67 5f 73 79 6d 62 6f | accessi|ng_symbo|
|00002070| 6c 5b 74 6f 5f 73 74 61 | 74 65 5b 69 5d 5d 3b 0d |l[to_sta|te[i]];.|
|00002080| 0d 20 20 20 20 20 20 66 | 6f 72 20 28 72 75 6c 65 |. f|or (rule|
|00002090| 70 20 3d 20 64 65 72 69 | 76 65 73 5b 73 79 6d 62 |p = deri|ves[symb|
|000020a0| 6f 6c 31 5d 3b 20 2a 72 | 75 6c 65 70 20 3e 3d 20 |ol1]; *r|ulep >= |
|000020b0| 30 3b 20 72 75 6c 65 70 | 2b 2b 29 0d 09 7b 0d 09 |0; rulep|++)..{..|
|000020c0| 20 20 6c 65 6e 67 74 68 | 20 3d 20 31 3b 0d 09 20 | length| = 1;.. |
|000020d0| 20 73 74 61 74 65 73 5b | 30 5d 20 3d 20 73 74 61 | states[|0] = sta|
|000020e0| 74 65 31 3b 0d 09 20 20 | 73 74 61 74 65 6e 6f 20 |te1;.. |stateno |
|000020f0| 3d 20 73 74 61 74 65 31 | 3b 0d 0d 09 20 20 66 6f |= state1|;... fo|
|00002100| 72 20 28 72 70 20 3d 20 | 72 69 74 65 6d 20 2b 20 |r (rp = |ritem + |
|00002110| 72 72 68 73 5b 2a 72 75 | 6c 65 70 5d 3b 20 2a 72 |rrhs[*ru|lep]; *r|
|00002120| 70 20 3e 3d 20 30 3b 20 | 72 70 2b 2b 29 0d 09 20 |p >= 0; |rp++).. |
|00002130| 20 20 20 7b 0d 09 20 20 | 20 20 20 20 73 79 6d 62 | {.. | symb|
|00002140| 6f 6c 32 20 3d 20 2a 72 | 70 3b 0d 09 20 20 20 20 |ol2 = *r|p;.. |
|00002150| 20 20 73 70 20 3d 20 73 | 68 69 66 74 5f 74 61 62 | sp = s|hift_tab|
|00002160| 6c 65 5b 73 74 61 74 65 | 6e 6f 5d 3b 0d 09 20 20 |le[state|no];.. |
|00002170| 20 20 20 20 6b 20 3d 20 | 73 70 2d 3e 6e 73 68 69 | k = |sp->nshi|
|00002180| 66 74 73 3b 0d 0d 09 20 | 20 20 20 20 20 66 6f 72 |fts;... | for|
|00002190| 20 28 6a 20 3d 20 30 3b | 20 6a 20 3c 20 6b 3b 20 | (j = 0;| j < k; |
|000021a0| 6a 2b 2b 29 0d 09 09 7b | 0d 09 09 20 20 73 74 61 |j++)...{|... sta|
|000021b0| 74 65 6e 6f 20 3d 20 73 | 70 2d 3e 73 68 69 66 74 |teno = s|p->shift|
|000021c0| 5b 6a 5d 3b 0d 09 09 20 | 20 69 66 20 28 61 63 63 |[j];... | if (acc|
|000021d0| 65 73 73 69 6e 67 5f 73 | 79 6d 62 6f 6c 5b 73 74 |essing_s|ymbol[st|
|000021e0| 61 74 65 6e 6f 5d 20 3d | 3d 20 73 79 6d 62 6f 6c |ateno] =|= symbol|
|000021f0| 32 29 20 62 72 65 61 6b | 3b 0d 09 09 7d 0d 0d 09 |2) break|;...}...|
|00002200| 20 20 20 20 20 20 73 74 | 61 74 65 73 5b 6c 65 6e | st|ates[len|
|00002210| 67 74 68 2b 2b 5d 20 3d | 20 73 74 61 74 65 6e 6f |gth++] =| stateno|
|00002220| 3b 0d 09 20 20 20 20 7d | 0d 0d 09 20 20 61 64 64 |;.. }|... add|
|00002230| 5f 6c 6f 6f 6b 62 61 63 | 6b 5f 65 64 67 65 28 73 |_lookbac|k_edge(s|
|00002240| 74 61 74 65 6e 6f 2c 20 | 2a 72 75 6c 65 70 2c 20 |tateno, |*rulep, |
|00002250| 69 29 3b 0d 0d 09 20 20 | 6c 65 6e 67 74 68 2d 2d |i);... |length--|
|00002260| 3b 0d 09 20 20 64 6f 6e | 65 20 3d 20 30 3b 0d 09 |;.. don|e = 0;..|
|00002270| 20 20 77 68 69 6c 65 20 | 28 21 64 6f 6e 65 29 0d | while |(!done).|
|00002280| 09 20 20 20 20 7b 0d 09 | 20 20 20 20 20 20 64 6f |. {..| do|
|00002290| 6e 65 20 3d 20 31 3b 0d | 09 20 20 20 20 20 20 72 |ne = 1;.|. r|
|000022a0| 70 2d 2d 3b 0d 09 20 20 | 20 20 20 20 69 66 20 28 |p--;.. | if (|
|000022b0| 49 53 56 41 52 28 2a 72 | 70 29 29 0d 09 09 7b 0d |ISVAR(*r|p))...{.|
|000022c0| 09 09 20 20 73 74 61 74 | 65 6e 6f 20 3d 20 73 74 |.. stat|eno = st|
|000022d0| 61 74 65 73 5b 2d 2d 6c | 65 6e 67 74 68 5d 3b 0d |ates[--l|ength];.|
|000022e0| 09 09 20 20 65 64 67 65 | 5b 6e 65 64 67 65 73 2b |.. edge|[nedges+|
|000022f0| 2b 5d 20 3d 20 6d 61 70 | 5f 67 6f 74 6f 28 73 74 |+] = map|_goto(st|
|00002300| 61 74 65 6e 6f 2c 20 2a | 72 70 29 3b 0d 09 09 20 |ateno, *|rp);... |
|00002310| 20 69 66 20 28 6e 75 6c | 6c 61 62 6c 65 5b 2a 72 | if (nul|lable[*r|
|00002320| 70 5d 20 26 26 20 6c 65 | 6e 67 74 68 20 3e 20 30 |p] && le|ngth > 0|
|00002330| 29 20 64 6f 6e 65 20 3d | 20 30 3b 0d 09 09 7d 0d |) done =| 0;...}.|
|00002340| 09 20 20 20 20 7d 0d 09 | 7d 0d 0d 20 20 20 20 20 |. }..|}.. |
|00002350| 20 69 66 20 28 6e 65 64 | 67 65 73 29 0d 09 7b 0d | if (ned|ges)..{.|
|00002360| 09 20 20 69 6e 63 6c 75 | 64 65 73 5b 69 5d 20 3d |. inclu|des[i] =|
|00002370| 20 73 68 6f 72 74 70 20 | 3d 20 4e 45 57 32 28 6e | shortp |= NEW2(n|
|00002380| 65 64 67 65 73 20 2b 20 | 31 2c 20 73 68 6f 72 74 |edges + |1, short|
|00002390| 29 3b 0d 09 20 20 66 6f | 72 20 28 6a 20 3d 20 30 |);.. fo|r (j = 0|
|000023a0| 3b 20 6a 20 3c 20 6e 65 | 64 67 65 73 3b 20 6a 2b |; j < ne|dges; j+|
|000023b0| 2b 29 0d 09 20 20 20 20 | 73 68 6f 72 74 70 5b 6a |+).. |shortp[j|
|000023c0| 5d 20 3d 20 65 64 67 65 | 5b 6a 5d 3b 0d 09 20 20 |] = edge|[j];.. |
|000023d0| 73 68 6f 72 74 70 5b 6e | 65 64 67 65 73 5d 20 3d |shortp[n|edges] =|
|000023e0| 20 2d 31 3b 0d 09 7d 0d | 20 20 20 20 7d 0d 0d 20 | -1;..}.| }.. |
|000023f0| 20 6e 65 77 5f 69 6e 63 | 6c 75 64 65 73 20 3d 20 | new_inc|ludes = |
|00002400| 74 72 61 6e 73 70 6f 73 | 65 28 69 6e 63 6c 75 64 |transpos|e(includ|
|00002410| 65 73 2c 20 6e 67 6f 74 | 6f 73 29 3b 0d 0d 20 20 |es, ngot|os);.. |
|00002420| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|00002430| 6e 67 6f 74 6f 73 3b 20 | 69 2b 2b 29 0d 20 20 20 |ngotos; |i++). |
|00002440| 20 69 66 20 28 69 6e 63 | 6c 75 64 65 73 5b 69 5d | if (inc|ludes[i]|
|00002450| 29 0d 20 20 20 20 20 20 | 46 52 45 45 28 69 6e 63 |). |FREE(inc|
|00002460| 6c 75 64 65 73 5b 69 5d | 29 3b 0d 0d 20 20 46 52 |ludes[i]|);.. FR|
|00002470| 45 45 28 69 6e 63 6c 75 | 64 65 73 29 3b 0d 0d 20 |EE(inclu|des);.. |
|00002480| 20 69 6e 63 6c 75 64 65 | 73 20 3d 20 6e 65 77 5f | include|s = new_|
|00002490| 69 6e 63 6c 75 64 65 73 | 3b 0d 0d 20 20 46 52 45 |includes|;.. FRE|
|000024a0| 45 28 65 64 67 65 29 3b | 0d 20 20 46 52 45 45 28 |E(edge);|. FREE(|
|000024b0| 73 74 61 74 65 73 29 3b | 0d 7d 0d 0d 0d 61 64 64 |states);|.}...add|
|000024c0| 5f 6c 6f 6f 6b 62 61 63 | 6b 5f 65 64 67 65 28 73 |_lookbac|k_edge(s|
|000024d0| 74 61 74 65 6e 6f 2c 20 | 72 75 6c 65 6e 6f 2c 20 |tateno, |ruleno, |
|000024e0| 67 6f 74 6f 6e 6f 29 0d | 69 6e 74 20 73 74 61 74 |gotono).|int stat|
|000024f0| 65 6e 6f 2c 20 72 75 6c | 65 6e 6f 2c 20 67 6f 74 |eno, rul|eno, got|
|00002500| 6f 6e 6f 3b 0d 7b 0d 20 | 20 20 20 72 65 67 69 73 |ono;.{. | regis|
|00002510| 74 65 72 20 69 6e 74 20 | 69 2c 20 6b 3b 0d 20 20 |ter int |i, k;. |
|00002520| 20 20 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 66 | regist|er int f|
|00002530| 6f 75 6e 64 3b 0d 20 20 | 20 20 72 65 67 69 73 74 |ound;. | regist|
|00002540| 65 72 20 73 68 6f 72 74 | 73 20 2a 73 70 3b 0d 0d |er short|s *sp;..|
|00002550| 20 20 20 20 69 20 3d 20 | 6c 6f 6f 6b 61 68 65 61 | i = |lookahea|
|00002560| 64 73 5b 73 74 61 74 65 | 6e 6f 5d 3b 0d 20 20 20 |ds[state|no];. |
|00002570| 20 6b 20 3d 20 6c 6f 6f | 6b 61 68 65 61 64 73 5b | k = loo|kaheads[|
|00002580| 73 74 61 74 65 6e 6f 20 | 2b 20 31 5d 3b 0d 20 20 |stateno |+ 1];. |
|00002590| 20 20 66 6f 75 6e 64 20 | 3d 20 30 3b 0d 20 20 20 | found |= 0;. |
|000025a0| 20 77 68 69 6c 65 20 28 | 21 66 6f 75 6e 64 20 26 | while (|!found &|
|000025b0| 26 20 69 20 3c 20 6b 29 | 0d 20 20 20 20 7b 0d 09 |& i < k)|. {..|
|000025c0| 69 66 20 28 4c 41 72 75 | 6c 65 6e 6f 5b 69 5d 20 |if (LAru|leno[i] |
|000025d0| 3d 3d 20 72 75 6c 65 6e | 6f 29 0d 09 20 20 20 20 |== rulen|o).. |
|000025e0| 66 6f 75 6e 64 20 3d 20 | 31 3b 0d 09 65 6c 73 65 |found = |1;..else|
|000025f0| 0d 09 20 20 20 20 2b 2b | 69 3b 0d 20 20 20 20 7d |.. ++|i;. }|
|00002600| 0d 20 20 20 20 61 73 73 | 65 72 74 28 66 6f 75 6e |. ass|ert(foun|
|00002610| 64 29 3b 0d 0d 20 20 20 | 20 73 70 20 3d 20 4e 45 |d);.. | sp = NE|
|00002620| 57 28 73 68 6f 72 74 73 | 29 3b 0d 20 20 20 20 73 |W(shorts|);. s|
|00002630| 70 2d 3e 6e 65 78 74 20 | 3d 20 6c 6f 6f 6b 62 61 |p->next |= lookba|
|00002640| 63 6b 5b 69 5d 3b 0d 20 | 20 20 20 73 70 2d 3e 76 |ck[i];. | sp->v|
|00002650| 61 6c 75 65 20 3d 20 67 | 6f 74 6f 6e 6f 3b 0d 20 |alue = g|otono;. |
|00002660| 20 20 20 6c 6f 6f 6b 62 | 61 63 6b 5b 69 5d 20 3d | lookb|ack[i] =|
|00002670| 20 73 70 3b 0d 7d 0d 0d | 0d 0d 73 68 6f 72 74 20 | sp;.}..|..short |
|00002680| 2a 2a 0d 74 72 61 6e 73 | 70 6f 73 65 28 52 2c 20 |**.trans|pose(R, |
|00002690| 6e 29 0d 73 68 6f 72 74 | 20 2a 2a 52 3b 0d 69 6e |n).short| **R;.in|
|000026a0| 74 20 6e 3b 0d 7b 0d 20 | 20 72 65 67 69 73 74 65 |t n;.{. | registe|
|000026b0| 72 20 73 68 6f 72 74 20 | 2a 2a 6e 65 77 5f 52 3b |r short |**new_R;|
|000026c0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 73 68 6f 72 |. regis|ter shor|
|000026d0| 74 20 2a 2a 74 65 6d 70 | 5f 52 3b 0d 20 20 72 65 |t **temp|_R;. re|
|000026e0| 67 69 73 74 65 72 20 73 | 68 6f 72 74 20 2a 6e 65 |gister s|hort *ne|
|000026f0| 64 67 65 73 3b 0d 20 20 | 72 65 67 69 73 74 65 72 |dges;. |register|
|00002700| 20 73 68 6f 72 74 20 2a | 73 70 3b 0d 20 20 72 65 | short *|sp;. re|
|00002710| 67 69 73 74 65 72 20 69 | 6e 74 20 69 3b 0d 20 20 |gister i|nt i;. |
|00002720| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 6b 3b 0d |register| int k;.|
|00002730| 0d 20 20 6e 65 64 67 65 | 73 20 3d 20 4e 45 57 32 |. nedge|s = NEW2|
|00002740| 28 6e 2c 20 73 68 6f 72 | 74 29 3b 0d 0d 20 20 66 |(n, shor|t);.. f|
|00002750| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 6e |or (i = |0; i < n|
|00002760| 3b 20 69 2b 2b 29 0d 20 | 20 20 20 7b 0d 20 20 20 |; i++). | {. |
|00002770| 20 20 20 73 70 20 3d 20 | 52 5b 69 5d 3b 0d 20 20 | sp = |R[i];. |
|00002780| 20 20 20 20 69 66 20 28 | 73 70 29 0d 09 7b 0d 09 | if (|sp)..{..|
|00002790| 20 20 77 68 69 6c 65 20 | 28 2a 73 70 20 3e 3d 20 | while |(*sp >= |
|000027a0| 30 29 0d 09 20 20 20 20 | 6e 65 64 67 65 73 5b 2a |0).. |nedges[*|
|000027b0| 73 70 2b 2b 5d 2b 2b 3b | 0d 09 7d 0d 20 20 20 20 |sp++]++;|..}. |
|000027c0| 7d 0d 0d 20 20 6e 65 77 | 5f 52 20 3d 20 4e 45 57 |}.. new|_R = NEW|
|000027d0| 32 28 6e 2c 20 73 68 6f | 72 74 20 2a 29 3b 0d 20 |2(n, sho|rt *);. |
|000027e0| 20 74 65 6d 70 5f 52 20 | 3d 20 4e 45 57 32 28 6e | temp_R |= NEW2(n|
|000027f0| 2c 20 73 68 6f 72 74 20 | 2a 29 3b 0d 0d 20 20 66 |, short |*);.. f|
|00002800| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 6e |or (i = |0; i < n|
|00002810| 3b 20 69 2b 2b 29 0d 20 | 20 20 20 7b 0d 20 20 20 |; i++). | {. |
|00002820| 20 20 20 6b 20 3d 20 6e | 65 64 67 65 73 5b 69 5d | k = n|edges[i]|
|00002830| 3b 0d 20 20 20 20 20 20 | 69 66 20 28 6b 20 3e 20 |;. |if (k > |
|00002840| 30 29 0d 09 7b 0d 09 20 | 20 73 70 20 3d 20 4e 45 |0)..{.. | sp = NE|
|00002850| 57 32 28 6b 20 2b 20 31 | 2c 20 73 68 6f 72 74 29 |W2(k + 1|, short)|
|00002860| 3b 0d 09 20 20 6e 65 77 | 5f 52 5b 69 5d 20 3d 20 |;.. new|_R[i] = |
|00002870| 73 70 3b 0d 09 20 20 74 | 65 6d 70 5f 52 5b 69 5d |sp;.. t|emp_R[i]|
|00002880| 20 3d 20 73 70 3b 0d 09 | 20 20 73 70 5b 6b 5d 20 | = sp;..| sp[k] |
|00002890| 3d 20 2d 31 3b 0d 09 7d | 0d 20 20 20 20 7d 0d 0d |= -1;..}|. }..|
|000028a0| 20 20 46 52 45 45 28 6e | 65 64 67 65 73 29 3b 0d | FREE(n|edges);.|
|000028b0| 0d 20 20 66 6f 72 20 28 | 69 20 3d 20 30 3b 20 69 |. for (|i = 0; i|
|000028c0| 20 3c 20 6e 3b 20 69 2b | 2b 29 0d 20 20 20 20 7b | < n; i+|+). {|
|000028d0| 0d 20 20 20 20 20 20 73 | 70 20 3d 20 52 5b 69 5d |. s|p = R[i]|
|000028e0| 3b 0d 20 20 20 20 20 20 | 69 66 20 28 73 70 29 0d |;. |if (sp).|
|000028f0| 09 7b 0d 09 20 20 77 68 | 69 6c 65 20 28 2a 73 70 |.{.. wh|ile (*sp|
|00002900| 20 3e 3d 20 30 29 0d 09 | 20 20 20 20 2a 74 65 6d | >= 0)..| *tem|
|00002910| 70 5f 52 5b 2a 73 70 2b | 2b 5d 2b 2b 20 3d 20 69 |p_R[*sp+|+]++ = i|
|00002920| 3b 0d 09 7d 0d 20 20 20 | 20 7d 0d 0d 20 20 46 52 |;..}. | }.. FR|
|00002930| 45 45 28 74 65 6d 70 5f | 52 29 3b 0d 0d 20 20 72 |EE(temp_|R);.. r|
|00002940| 65 74 75 72 6e 20 28 6e | 65 77 5f 52 29 3b 0d 7d |eturn (n|ew_R);.}|
|00002950| 0d 0d 0d 0d 63 6f 6d 70 | 75 74 65 5f 46 4f 4c 4c |....comp|ute_FOLL|
|00002960| 4f 57 53 28 29 0d 7b 0d | 20 20 64 69 67 72 61 70 |OWS().{.| digrap|
|00002970| 68 28 69 6e 63 6c 75 64 | 65 73 29 3b 0d 7d 0d 0d |h(includ|es);.}..|
|00002980| 0d 63 6f 6d 70 75 74 65 | 5f 6c 6f 6f 6b 61 68 65 |.compute|_lookahe|
|00002990| 61 64 73 28 29 0d 7b 0d | 20 20 72 65 67 69 73 74 |ads().{.| regist|
|000029a0| 65 72 20 69 6e 74 20 69 | 2c 20 6e 3b 0d 20 20 72 |er int i|, n;. r|
|000029b0| 65 67 69 73 74 65 72 20 | 75 6e 73 69 67 6e 65 64 |egister |unsigned|
|000029c0| 20 2a 66 70 31 2c 20 2a | 66 70 32 2c 20 2a 66 70 | *fp1, *|fp2, *fp|
|000029d0| 33 3b 0d 20 20 72 65 67 | 69 73 74 65 72 20 73 68 |3;. reg|ister sh|
|000029e0| 6f 72 74 73 20 2a 73 70 | 2c 20 2a 6e 65 78 74 3b |orts *sp|, *next;|
|000029f0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |. regis|ter unsi|
|00002a00| 67 6e 65 64 20 2a 72 6f | 77 70 3b 0d 0d 20 20 72 |gned *ro|wp;.. r|
|00002a10| 6f 77 70 20 3d 20 4c 41 | 3b 0d 20 20 6e 20 3d 20 |owp = LA|;. n = |
|00002a20| 6c 6f 6f 6b 61 68 65 61 | 64 73 5b 6e 73 74 61 74 |lookahea|ds[nstat|
|00002a30| 65 73 5d 3b 0d 20 20 66 | 6f 72 20 28 69 20 3d 20 |es];. f|or (i = |
|00002a40| 30 3b 20 69 20 3c 20 6e | 3b 20 69 2b 2b 29 0d 20 |0; i < n|; i++). |
|00002a50| 20 20 20 7b 0d 20 20 20 | 20 20 20 66 70 33 20 3d | {. | fp3 =|
|00002a60| 20 72 6f 77 70 20 2b 20 | 74 6f 6b 65 6e 73 65 74 | rowp + |tokenset|
|00002a70| 73 69 7a 65 3b 0d 20 20 | 20 20 20 20 66 6f 72 20 |size;. | for |
|00002a80| 28 73 70 20 3d 20 6c 6f | 6f 6b 62 61 63 6b 5b 69 |(sp = lo|okback[i|
|00002a90| 5d 3b 20 73 70 3b 20 73 | 70 20 3d 20 73 70 2d 3e |]; sp; s|p = sp->|
|00002aa0| 6e 65 78 74 29 0d 09 7b | 0d 09 20 20 66 70 31 20 |next)..{|.. fp1 |
|00002ab0| 3d 20 72 6f 77 70 3b 0d | 09 20 20 66 70 32 20 3d |= rowp;.|. fp2 =|
|00002ac0| 20 46 20 2b 20 74 6f 6b | 65 6e 73 65 74 73 69 7a | F + tok|ensetsiz|
|00002ad0| 65 20 2a 20 73 70 2d 3e | 76 61 6c 75 65 3b 0d 09 |e * sp->|value;..|
|00002ae0| 20 20 77 68 69 6c 65 20 | 28 66 70 31 20 3c 20 66 | while |(fp1 < f|
|00002af0| 70 33 29 0d 09 20 20 20 | 20 2a 66 70 31 2b 2b 20 |p3).. | *fp1++ |
|00002b00| 7c 3d 20 2a 66 70 32 2b | 2b 3b 0d 09 7d 0d 20 20 ||= *fp2+|+;..}. |
|00002b10| 20 20 20 20 72 6f 77 70 | 20 3d 20 66 70 33 3b 0d | rowp| = fp3;.|
|00002b20| 20 20 20 20 7d 0d 0d 20 | 20 66 6f 72 20 28 69 20 | }.. | for (i |
|00002b30| 3d 20 30 3b 20 69 20 3c | 20 6e 3b 20 69 2b 2b 29 |= 0; i <| n; i++)|
|00002b40| 0d 20 20 20 20 66 6f 72 | 20 28 73 70 20 3d 20 6c |. for| (sp = l|
|00002b50| 6f 6f 6b 62 61 63 6b 5b | 69 5d 3b 20 73 70 3b 20 |ookback[|i]; sp; |
|00002b60| 73 70 20 3d 20 6e 65 78 | 74 29 0d 20 20 20 20 20 |sp = nex|t). |
|00002b70| 20 7b 0d 20 20 20 20 20 | 20 20 20 6e 65 78 74 20 | {. | next |
|00002b80| 3d 20 73 70 2d 3e 6e 65 | 78 74 3b 0d 20 20 20 20 |= sp->ne|xt;. |
|00002b90| 20 20 20 20 46 52 45 45 | 28 73 70 29 3b 0d 20 20 | FREE|(sp);. |
|00002ba0| 20 20 20 20 7d 0d 0d 20 | 20 46 52 45 45 28 6c 6f | }.. | FREE(lo|
|00002bb0| 6f 6b 62 61 63 6b 29 3b | 0d 20 20 46 52 45 45 28 |okback);|. FREE(|
|00002bc0| 46 29 3b 0d 7d 0d 0d 0d | 64 69 67 72 61 70 68 28 |F);.}...|digraph(|
|00002bd0| 72 65 6c 61 74 69 6f 6e | 29 0d 73 68 6f 72 74 20 |relation|).short |
|00002be0| 2a 2a 72 65 6c 61 74 69 | 6f 6e 3b 0d 7b 0d 20 20 |**relati|on;.{. |
|00002bf0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0d |register| int i;.|
|00002c00| 0d 20 20 69 6e 66 69 6e | 69 74 79 20 3d 20 6e 67 |. infin|ity = ng|
|00002c10| 6f 74 6f 73 20 2b 20 32 | 3b 0d 20 20 49 4e 44 45 |otos + 2|;. INDE|
|00002c20| 58 20 3d 20 4e 45 57 32 | 28 6e 67 6f 74 6f 73 20 |X = NEW2|(ngotos |
|00002c30| 2b 20 31 2c 20 73 68 6f | 72 74 29 3b 0d 20 20 56 |+ 1, sho|rt);. V|
|00002c40| 45 52 54 49 43 45 53 20 | 3d 20 4e 45 57 32 28 6e |ERTICES |= NEW2(n|
|00002c50| 67 6f 74 6f 73 20 2b 20 | 31 2c 20 73 68 6f 72 74 |gotos + |1, short|
|00002c60| 29 3b 0d 20 20 74 6f 70 | 20 3d 20 30 3b 0d 0d 20 |);. top| = 0;.. |
|00002c70| 20 52 20 3d 20 72 65 6c | 61 74 69 6f 6e 3b 0d 0d | R = rel|ation;..|
|00002c80| 20 20 66 6f 72 20 28 69 | 20 3d 20 30 3b 20 69 20 | for (i| = 0; i |
|00002c90| 3c 20 6e 67 6f 74 6f 73 | 3b 20 69 2b 2b 29 0d 20 |< ngotos|; i++). |
|00002ca0| 20 20 20 49 4e 44 45 58 | 5b 69 5d 20 3d 20 30 3b | INDEX|[i] = 0;|
|00002cb0| 0d 0d 20 20 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 |.. for |(i = 0; |
|00002cc0| 69 20 3c 20 6e 67 6f 74 | 6f 73 3b 20 69 2b 2b 29 |i < ngot|os; i++)|
|00002cd0| 0d 20 20 20 20 7b 0d 20 | 20 20 20 20 20 69 66 20 |. {. | if |
|00002ce0| 28 49 4e 44 45 58 5b 69 | 5d 20 3d 3d 20 30 20 26 |(INDEX[i|] == 0 &|
|00002cf0| 26 20 52 5b 69 5d 29 0d | 09 74 72 61 76 65 72 73 |& R[i]).|.travers|
|00002d00| 65 28 69 29 3b 0d 20 20 | 20 20 7d 0d 0d 20 20 46 |e(i);. | }.. F|
|00002d10| 52 45 45 28 49 4e 44 45 | 58 29 3b 0d 20 20 46 52 |REE(INDE|X);. FR|
|00002d20| 45 45 28 56 45 52 54 49 | 43 45 53 29 3b 0d 7d 0d |EE(VERTI|CES);.}.|
|00002d30| 0d 0d 0d 74 72 61 76 65 | 72 73 65 28 69 29 0d 72 |...trave|rse(i).r|
|00002d40| 65 67 69 73 74 65 72 20 | 69 6e 74 20 69 3b 0d 7b |egister |int i;.{|
|00002d50| 0d 20 20 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |. regis|ter unsi|
|00002d60| 67 6e 65 64 20 2a 66 70 | 31 3b 0d 20 20 72 65 67 |gned *fp|1;. reg|
|00002d70| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 2a |ister un|signed *|
|00002d80| 66 70 32 3b 0d 20 20 72 | 65 67 69 73 74 65 72 20 |fp2;. r|egister |
|00002d90| 75 6e 73 69 67 6e 65 64 | 20 2a 66 70 33 3b 0d 20 |unsigned| *fp3;. |
|00002da0| 20 72 65 67 69 73 74 65 | 72 20 69 6e 74 20 6a 3b | registe|r int j;|
|00002db0| 0d 20 20 72 65 67 69 73 | 74 65 72 20 73 68 6f 72 |. regis|ter shor|
|00002dc0| 74 20 2a 72 70 3b 0d 0d | 20 20 69 6e 74 20 68 65 |t *rp;..| int he|
|00002dd0| 69 67 68 74 3b 0d 20 20 | 75 6e 73 69 67 6e 65 64 |ight;. |unsigned|
|00002de0| 20 2a 62 61 73 65 3b 0d | 0d 20 20 56 45 52 54 49 | *base;.|. VERTI|
|00002df0| 43 45 53 5b 2b 2b 74 6f | 70 5d 20 3d 20 69 3b 0d |CES[++to|p] = i;.|
|00002e00| 20 20 49 4e 44 45 58 5b | 69 5d 20 3d 20 68 65 69 | INDEX[|i] = hei|
|00002e10| 67 68 74 20 3d 20 74 6f | 70 3b 0d 0d 20 20 62 61 |ght = to|p;.. ba|
|00002e20| 73 65 20 3d 20 46 20 2b | 20 69 20 2a 20 74 6f 6b |se = F +| i * tok|
|00002e30| 65 6e 73 65 74 73 69 7a | 65 3b 0d 20 20 66 70 33 |ensetsiz|e;. fp3|
|00002e40| 20 3d 20 62 61 73 65 20 | 2b 20 74 6f 6b 65 6e 73 | = base |+ tokens|
|00002e50| 65 74 73 69 7a 65 3b 0d | 0d 20 20 72 70 20 3d 20 |etsize;.|. rp = |
|00002e60| 52 5b 69 5d 3b 0d 20 20 | 69 66 20 28 72 70 29 0d |R[i];. |if (rp).|
|00002e70| 20 20 20 20 7b 0d 20 20 | 20 20 20 20 77 68 69 6c | {. | whil|
|00002e80| 65 20 28 28 6a 20 3d 20 | 2a 72 70 2b 2b 29 20 3e |e ((j = |*rp++) >|
|00002e90| 3d 20 30 29 0d 09 7b 0d | 09 20 20 69 66 20 28 49 |= 0)..{.|. if (I|
|00002ea0| 4e 44 45 58 5b 6a 5d 20 | 3d 3d 20 30 29 0d 09 20 |NDEX[j] |== 0).. |
|00002eb0| 20 20 20 74 72 61 76 65 | 72 73 65 28 6a 29 3b 0d | trave|rse(j);.|
|00002ec0| 0d 09 20 20 69 66 20 28 | 49 4e 44 45 58 5b 69 5d |.. if (|INDEX[i]|
|00002ed0| 20 3e 20 49 4e 44 45 58 | 5b 6a 5d 29 0d 09 20 20 | > INDEX|[j]).. |
|00002ee0| 20 20 49 4e 44 45 58 5b | 69 5d 20 3d 20 49 4e 44 | INDEX[|i] = IND|
|00002ef0| 45 58 5b 6a 5d 3b 0d 0d | 09 20 20 66 70 31 20 3d |EX[j];..|. fp1 =|
|00002f00| 20 62 61 73 65 3b 0d 09 | 20 20 66 70 32 20 3d 20 | base;..| fp2 = |
|00002f10| 46 20 2b 20 6a 20 2a 20 | 74 6f 6b 65 6e 73 65 74 |F + j * |tokenset|
|00002f20| 73 69 7a 65 3b 0d 0d 09 | 20 20 77 68 69 6c 65 20 |size;...| while |
|00002f30| 28 66 70 31 20 3c 20 66 | 70 33 29 0d 09 20 20 20 |(fp1 < f|p3).. |
|00002f40| 20 2a 66 70 31 2b 2b 20 | 7c 3d 20 2a 66 70 32 2b | *fp1++ ||= *fp2+|
|00002f50| 2b 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 0d 20 20 69 |+;..}. | }.. i|
|00002f60| 66 20 28 49 4e 44 45 58 | 5b 69 5d 20 3d 3d 20 68 |f (INDEX|[i] == h|
|00002f70| 65 69 67 68 74 29 0d 20 | 20 20 20 7b 0d 20 20 20 |eight). | {. |
|00002f80| 20 20 20 66 6f 72 20 28 | 3b 3b 29 0d 09 7b 0d 09 | for (|;;)..{..|
|00002f90| 20 20 6a 20 3d 20 56 45 | 52 54 49 43 45 53 5b 74 | j = VE|RTICES[t|
|00002fa0| 6f 70 2d 2d 5d 3b 0d 09 | 20 20 49 4e 44 45 58 5b |op--];..| INDEX[|
|00002fb0| 6a 5d 20 3d 20 69 6e 66 | 69 6e 69 74 79 3b 0d 0d |j] = inf|inity;..|
|00002fc0| 09 20 20 69 66 20 28 69 | 20 3d 3d 20 6a 29 0d 09 |. if (i| == j)..|
|00002fd0| 20 20 20 20 62 72 65 61 | 6b 3b 0d 0d 09 20 20 66 | brea|k;... f|
|00002fe0| 70 31 20 3d 20 62 61 73 | 65 3b 0d 09 20 20 66 70 |p1 = bas|e;.. fp|
|00002ff0| 32 20 3d 20 46 20 2b 20 | 6a 20 2a 20 74 6f 6b 65 |2 = F + |j * toke|
|00003000| 6e 73 65 74 73 69 7a 65 | 3b 0d 0d 09 20 20 77 68 |nsetsize|;... wh|
|00003010| 69 6c 65 20 28 66 70 31 | 20 3c 20 66 70 33 29 0d |ile (fp1| < fp3).|
|00003020| 09 20 20 20 20 2a 66 70 | 32 2b 2b 20 3d 20 2a 66 |. *fp|2++ = *f|
|00003030| 70 31 2b 2b 3b 0d 09 7d | 0d 20 20 20 20 7d 0d 7d |p1++;..}|. }.}|
|00003040| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003080| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00003090| 4d 49 54 45 44 20 54 4f | 2c 20 50 52 4f 43 55 52 |MITED TO|, PROCUR|
|000030a0| 45 4d 45 4e 54 20 4f 46 | 20 53 55 42 53 54 49 54 |EMENT OF| SUBSTIT|
|000030b0| 06 6c 61 6c 72 2e 63 b4 | 02 00 00 00 50 61 72 74 |.lalr.c.|....Part|
|000030c0| 53 49 54 78 00 00 00 00 | 00 00 00 00 00 01 61 a7 |SITx....|......a.|
|000030d0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|000030e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030f0| 00 00 a9 80 16 19 00 00 | 00 00 00 00 01 ac 49 4f |........|......IO|
|00003100| 4e 29 0d 20 2a 20 48 4f | 57 45 56 45 52 20 43 41 |N). * HO|WEVER CA|
|00003110| 55 53 45 44 20 41 4e 44 | 20 4f 4e 20 41 4e 59 20 |USED AND| ON ANY |
|00003120| 54 48 45 4f 52 59 20 4f | 46 20 4c 49 41 42 49 4c |THEORY O|F LIABIL|
|00003130| 49 54 59 2c 20 57 48 45 | 54 48 45 52 20 49 4e 20 |ITY, WHE|THER IN |
|00003140| 43 4f 4e 54 52 41 43 54 | 2c 20 53 54 52 49 43 54 |CONTRACT|, STRICT|
|00003150| 0d 20 2a 20 4c 49 41 42 | 49 4c 49 54 59 2c 20 4f |. * LIAB|ILITY, O|
|00003160| 52 20 54 4f 52 54 20 28 | 49 4e 43 4c 55 44 49 4e |R TORT (|INCLUDIN|
|00003170| 47 20 4e 45 47 4c 49 47 | 45 4e 43 45 20 4f 52 20 |G NEGLIG|ENCE OR |
|00003180| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 1d 46 d0 |...H..Mo|naco..F.|
|00003190| 00 00 00 14 00 06 11 d8 | 00 0a 80 01 80 01 7f ff |........|........|
|000031a0| 7f ff 00 00 00 00 00 06 | 00 04 00 50 00 20 01 dd |........|...P. ..|
|000031b0| 02 3d 00 50 00 20 01 dd | 02 3d a5 1f c1 74 00 00 |.=.P. ..|.=...t..|
|000031c0| 00 00 00 00 00 00 00 00 | 2f bf 01 00 00 00 00 1e |........|/.......|
|000031d0| 00 50 00 20 01 dd 02 3d | 00 50 00 20 01 dd 02 3d |.P. ...=|.P. ...=|
|000031e0| 00 00 2f bf 00 00 00 00 | 00 00 00 00 00 00 00 00 |../.....|........|
|000031f0| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 51 |.....n..|.n...>.Q|
|00003200| 36 ac 0a a8 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |6.......|.>..MPSR|
|00003210| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........|
|00003220| 03 f0 ff ff 00 00 00 4c | 00 57 47 50 00 00 00 00 |.......L|.WGP....|
|00003230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003260| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003270| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+